将自定义点击事件注册到父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
});
有没有办法用第一种方法解决这个问题?
答案 0 :(得分:1)
我认为这样的not
真的不可能。如果它们各不相同,那么你的第二种方式对我来说似乎完全没问题。
如果操作类似,您可以使用逗号分隔:
$summary.find(".count, .arrow, .icon.add").on("click", null, e => {
//do something2
});