triggerHandler():要素に設定したイベント(ブラウザのデフォルトの動作はしない)を指定して実行
2016/07/07
triggerHandler():要素にイベント(ブラウザのデフォルトの動作はしない)を指定して実行
要素にイベント(ブラウザのデフォルトの動作はしない)を指定して実行の書式
要素.triggerHandler(イベントのタイプ);
要素にイベント(ブラウザのデフォルトの動作はしない)を指定して実行する場合は、要素.triggerHandler(イベントのタイプ);
要素にイベント(ブラウザのデフォルトの動作はしない)を指定して実行するjQueryのサンプルコード
1.cssにてinputにfocusがきた場合に背景色が変化するようにする
2.button(#btnTrigger)にクリックされたらinput(#testText)にtriggerHandlerメソッドでfocusイベントを発生させる
3.input(#testText)のfocusイベントの処理はval値の変更とする
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> <!-- input { margin: 10px; padding: 10px; } input:focus { background-color: #ccffcc; } button{ margin: 10px; padding: 10px; } --> </style> <script src="../../js/jquery-1.12.2.min.js"></script> <script> $(function(){ $("#btnTriggerHandler").on("click", function(){ $("#textTest").triggerHandler("focus"); }); $("#textTest").on("focus", function(){ $("#textTest").val("clicked button"); }); }); </script> </head> <body> <input type = "text" name = "textTest" id = "textTest"><br> <button id = "btnTriggerHandler">triggerHandler</button> </body> </html>
要素にイベント(ブラウザのデフォルトの動作はしない)を指定して実行するjQueryのサンプルの結果
↓
ボタンをクリックしたらinput(#testText)のfocusイベントの処理が発生してval値が変わる
focusイベントの割当てはtriggerHandlerメソッドでしたのでブラウザのデフォルトの動作、つまりこの場合はfocusそのものはしないので背景色は変わらない。