点击 Backbone事件(查看)时,我正试图获取div的数据属性。
如果我点击div listItem
,我就可以实现这一点,但如果我要点击子元素范围,它将失败,因为$(e.target)
将是范围。
那么即使单击了子元素,我如何获取父元素的data属性?
<div class="listItem" data-showInfo="true">
<span class="arrow"></span>
</div>
events:{
"click .listItem": function(e) {
var $listItem= $(e.target);
console.log($listItem.data('showInfo'));
}
}
答案 0 :(得分:7)
使用event.currentTarget
代替event.target
,它将独立于您点击的DOM节点设置为.listItem
选择器
var V = Backbone.View.extend({
events: {
'click .listItem' : function(e) {
console.log($(e.currentTarget).data('showinfo'));
}
}
});
答案 1 :(得分:6)
你可以这样做:
$('.arrow').click(function(){
alert($(this).parent().attr('data-showInfo'));
});
您的示例位于此JSFiddle
中答案 2 :(得分:2)
events:{
"click .arrow": function(){
console.log($(this).parent('.listItem').attr('data-showInfo'));
};
}