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

man*_*j82 4 jquery backbone.js

我正在尝试在Backbone事件(View)中单击时获取div的data属性.

如果我单击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'));
  }
}
Run Code Online (Sandbox Code Playgroud)

nik*_*shr 7

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

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

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


Deb*_*tra 6

你可以这样做:

$('.arrow').click(function(){
alert($(this).parent().attr('data-showInfo'));
});
Run Code Online (Sandbox Code Playgroud)

你的例子就在这个JSFiddle中