1 回答

TA贡献1797条经验 获得超4个赞
获取item您实际需要的位置,并摆脱上的处理程序parent:
$('.parent').on('click', '.children', function () {
item = $(this).closest('.parent').attr('item');
doSomething();
});
编辑:
然后,当您单击祖父母或外祖父母时获得物品:
$('.grandParent').on('click', '.children', function () {
item = $(this).closest('.parent').attr('item');
});
编辑#2:
根据OP的更新要求,请执行以下操作:
<div class="message" data-item="1">
<a class="action edit" data-type="edit">E</a>
<a class="action delete" data-type="delete">X</a>
<a class="action favorite" data-type="favorite">Fav</a>
<a class="like">Like</a>
<div class="content">
Hello world !
</div>
</div>
<div class="message" data-item="2">
<a class="action edit" data-type="edit">E</a>
<a class="action delete" data-type="delete">X</a>
<a class="action favorite" data-type="favorite">Fav</a>
<a class="like">Like</a>
<div class="content">
Hello world !
</div>
</div>
$(document).on('click','.message .action',function(e) {
const item = $(this).closest('message').attr('item');
switch($(this).data('type')) {
case 'edit': doEdit(item); break;
case 'delete': doDelete(item); break;
case 'favorite': doFavorite(item); break;
}
});
看到一个事件处理程序吗?
做自己的事是很常见的模式。在没有更强大的框架(例如React)的情况下,那么使用普通的jQuery就是应该做到的。
添加回答
举报