3

关注w3schools

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

该事件仅在第一个元素上触发。但是,当发生这种情况时,您的代码会输出行:

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

该行运行一次,将在所有匹配input元素之后附加文本。由于有两个匹配的元素,即使事件仅针对第一个元素触发,您也会看到该行两次。

只需将那一行更改为

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

...并且您将看到仅在触发事件的元素之后附加的输出。Live Copy,仅进行了上述更改并删除了在页面上包含 MooTools 的选项。

于 2012-11-10T08:32:40.223 回答