3

フォローする

triggerHandler() メソッドは、trigger() メソッドに似ています。ただし、イベントのデフォルトの動作 (フォーム送信など) はトリガーされず、最初に一致した要素にのみ影響します。

しかし、2つの入力タグでテストして使用します

$("input").triggerHandler("select");

その後、それらの両方が影響を受けます。これが私のコードです:

HTML:

<input type="text" name="FirstName" value="Hello World" />
<input type="text" name="FirstName" value="Hello" />

JavaScript:

$(document).ready(function(){
  $("input").select(function(){
    $("input").after(" Input select event occured!");
  });
  $("button").click(function(){
    $("input").triggerHandler("select");
  });
});

jsFiddle でのライブコピー

4

1 に答える 1

3

イベントは最初の要素でのみトリガーされます。ただし、コードは、それが発生したときに2行を出力しています。

$("input").after(" Input select event occured!");

その行、 run onceinputは、一致するすべての要素の後にテキストを追加します。2 つの一致する要素があるため、イベントが最初の要素に対してのみ発生した場合でも、行が 2 回表示されます。

その1行を次のように変更するだけです

$(this).after(" Input select event occured!");

...そして、イベントがトリガーされた要素の後にのみ追加された出力が表示されます。ライブ コピー。上記の変更と、ページに MooTools を含めるオプションを削除しただけです。

于 2012-11-10T08:32:40.223 に答える