Jquery 使用返回相同HTML对象的不同选择器调用同一处理程序
事件处理程序是否绑定到元素,以便可以使用不同的选择器触发事件?看看下面的例子,看看我想知道什么: 示例:Jquery 使用返回相同HTML对象的不同选择器调用同一处理程序,jquery,html,Jquery,Html,事件处理程序是否绑定到元素,以便可以使用不同的选择器触发事件?看看下面的例子,看看我想知道什么: 示例: HTML 要调用此处理程序,我认为可以通过多种方式,使用不同的选择器,因此$('#item1')。单击()和$(#itemsList li).eq(1).单击()将调用相同的事件处理程序。对吗? 如果是,我肯定是做错了什么,因为它工作不正常…调用没有参数的.click(),或者.trigger('click')应该在选择器的结果上调用click事件处理程序。正如pinouchon所指出的,要
HTML 要调用此处理程序,我认为可以通过多种方式,使用不同的选择器,因此
$('#item1')。单击()
和$(#itemsList li).eq(1).单击()
将调用相同的事件处理程序。对吗?如果是,我肯定是做错了什么,因为它工作不正常…调用没有参数的.click(),或者.trigger('click')应该在选择器的结果上调用click事件处理程序。正如pinouchon所指出的,要小心使用选择器语法,在适当的地方使用引号,并记住.eq()是零索引的,这意味着.eq(1)将选择第二个li元素 最后,要调用事件处理程序,我认为您需要的是:
$('#itemsList li').eq(0).click();
或者说
$('#item1').click();
我有几件事要指出:
- 不要忘记表达式
$(#itemsList li)中的
。等式(1)。单击();“
实际上选择秒.eq(1)
,因为它从0开始li
// define handler
$('.items').click(function(){
alert($(this).text() + " clicked");
});
// call handler
$('#item1').click() ;
$("#itemsList li").eq(0).click();
您已经执行的操作将调用此处理程序:
$('item1')。单击();
和$('itemsList li)。等式(1)。单击();
不会调用同一个处理程序。它会创建一个新的处理程序。你确定吗?我用这种方法调用了很多次click处理程序,似乎都能正常工作。对不起,是的,你是对的,根据你的说法,当没有传递参数时,它也可以用来触发事件处理程序。我会更新我的答案。我想用diff调用同一个处理程序erent选择器不为每个选择器定义处理程序。当然,处理程序需要在调用它的行之前定义,对吗?
$('#item1').click();
// define handler
$('.items').click(function(){
alert($(this).text() + " clicked");
});
// call handler
$('#item1').click() ;
$("#itemsList li").eq(0).click();