如何根据点击的DOM节点区分点击事件?

How to differentiate the click event based on clicked DOM node?

如何根据单击的节点更改方法的行为?如果单击 $('.parent'),我想将 data 属性的 value 更改为 0

$('.parent').on('click', function (event) {
    this.someClickFunction(event);
});

$('.child').on('click', function (event) {
    this.someClickFunction(event);
});

someClickFunction: function (event) {
    //TODO: If $('.parent') was clicked, change to 0
    $('.holder').data('type', 1);
}

您可以使用 .is(selector) 检查点击了哪个元素。

Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments.

为简单起见,我已将函数引用传递给点击处理程序。

$('.parent').on('click', this.someClickFunction);
$('.child').on('click', this.someClickFunction);


someClickFunction: function (event) {
    $('.holder').data('type', $(event.target).is('.parent') ? 1: 0);        
}

读得不错Difference between $(this) and event.target?