如何动态注册不同的点击事件给div的特定孩子?

时间:2018-01-29 16:51:01

标签: jquery

将自定义点击事件注册到父div的子项的最佳方法是什么,点击事件与每个不同的子项不同?

这是我的标记:

<div class="summary">
    <div class="icon add"></div>
    <div class="count"</div>
    <div class="arrow"</div>
</div>

我需要注册'icon add'类不同的事件处理程序。

第一种方法:

我尝试过(无效 - 只有*:not(.icon.add)):

var $summery = $('.summary');
$summery.on("click", "*:not(.icon.add)", e => {
    //do something1;
});
$summery.on("click", ".icon.add", e => {
    //do something2;
});

第二种方法:

最终我所做的就是这个(工作):

$summary.find(".count").on("click", null, e => {
    //do something1
});
$summary.find(".arrow").on("click", null, e => {
    //do something1
});
$summary.find(".icon.add").on("click", null, e => {
    //do something2
});

有没有办法用第一种方法解决这个问题?

1 个答案:

答案 0 :(得分:1)

我认为这样的not真的不可能。如果它们各不相同,那么你的第二种方式对我来说似乎完全没问题。

如果操作类似,您可以使用逗号分隔:

$summary.find(".count, .arrow, .icon.add").on("click", null, e => {
    //do something2
});
相关问题