2016-04-21 127 views
0

如何根据点击哪个节点来更改方法的行为?如果单击$('.parent'),我想要将data属性的value更改为0如何根据点击的DOM节点区分点击事件?

$('.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); 
} 
+0

如果($( '父')== event.target)? –

回答

1

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

根据选择器,元素或jQuery对象检查当前匹配的元素集合,如果这些元素中至少有一个匹配给定的参数,则返回true。

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

$('.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?