2013-04-10 76 views
3

我試圖在點擊時獲取div的數據屬性骨幹事件(查看)即使點擊了子元素,如何獲取父元素的數據屬性

我能夠實現這一點,如果我點擊div listItem但如果我點擊子元素跨度將失敗,因爲$(e.target)將是跨度。

那麼,如何獲得父元素的數據屬性,即使點擊了子元素?

<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

是你的div.listItem在Backbone View的el範圍內嗎?只是爲了澄清。 – 2013-04-10 11:35:46

回答

7

使用event.currentTarget而不是event.target,將獨立設置爲.listItem選擇您點擊的DOM節點

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

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

5

你可以這樣說:

$('.arrow').click(function(){ 
alert($(this).parent().attr('data-showInfo')); 
}); 

你舉的例子是在這個JSFiddle

2
events:{  
    "click .arrow": function(){ 
     console.log($(this).parent('.listItem').attr('data-showInfo')); 
    }; 
} 
相關問題