Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用返回相同HTML对象的不同选择器调用同一处理程序_Jquery_Html - Fatal编程技术网

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)
    实际上选择秒
    li
    ,因为它从0开始
正确语法:

// 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();