2016-04-21 125 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?