关注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的选项。