TriggerHandler()影响所有匹配的元素



关注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上的实时副本

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

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

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

只需将一行更改为

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

...,您只会在事件触发的元素之后看到附加的输出。实时副本,只有上面的更改并删除了页面上包括mootools的选项。

相关内容

  • 没有找到相关文章

最新更新