Javascript 事件处理程序的动态绑定

Javascript 事件处理程序的动态绑定,javascript,jquery,Javascript,Jquery,我有一个事件处理程序 $(document).on("click","li.folder",function(e){ alert(e.target); }); 其中folder是一个自定义类 文件夹将动态地附加到ul 问题是,每当我在整个文档中单击任何位置时,都会触发此事件处理程序,即使对于标记不是li的元素和类不是folder 我想第二个参数中的li.folder会过滤掉事件吗 HTML

我有一个事件处理程序

$(document).on("click","li.folder",function(e){
    alert(e.target);
});
其中folder是一个自定义类

文件夹将动态地附加到ul

问题是,每当我在整个文档中单击任何位置时,都会触发此事件处理程序,即使对于标记不是li的元素和类不是folder

我想第二个参数中的li.folder会过滤掉事件吗

HTML

  • 它应该过滤掉。或者,如果您将
    文件夹
    类仅分配给
    li
    s,则您可以将其绑定为
    $(文档)进行尝试{
    您要在文件夹li后面添加哪个ul。ul是静态的还是动态的,如果是静态的,请给出该名称。您也可以发布html吗?在这种情况下效果很好。原因是您告诉它在文档级别进行侦听。因此,每次文档单击都将通过所有单击侦听器,以查看这是否是我想要的类/el(.folder)如果没有,它将中断“循环”并移动到找到的下一个元素。因此,是的,您应该使用ul,或者如果ul在DOM就绪时间不存在,则应该使用该ul的父div。一个好的规则是始终尝试委托给下一个最近的可用就绪父元素。