即使单击子元素,如何获取父元素的数据属性

时间:2013-04-10 11:02:52

标签: jquery backbone.js

点击 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'));
  }
}

3 个答案:

答案 0 :(得分:7)

使用event.currentTarget代替event.target,它将独立于您点击的DOM节点设置为.listItem选择器

var V = Backbone.View.extend({
    events: {
        'click .listItem' : function(e) {
            console.log($(e.currentTarget).data('showinfo'));
        }
    }
});

演示http://jsfiddle.net/nikoshr/QyP3Z/

答案 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'));
    };
}