2016-11-09 104 views
0

我一直在研究一個大型腳本,它檢查數據動作,現在我已經實現了懸停以顯示一些圖標;像這樣:

<div class="Flag" data-action="mail-flag"><i class="fa fa-flag" aria-hidden="true"></i></div> 
與此範圍內沒有純文本,而是一個圖標

然而,if ($(e.target).attr('data-action')) {不起作用爲$(e.target)<i></i>

如何在不將data-action="mail-flag"添加到<i></i>的情況下使if ($(e.target).attr('data-action')) {<div>...</div>上工作?

+0

'$(e.target).parent()。ATTR( '數據動作')' – afuous

+0

我想到這一點,但是如果孩子和家長有一個'日期action'設置將衝突。我不確定這是多麼可能,我認爲我迄今爲止沒有做到這一點,所以這個_could_可以工作......雖然'if'後面的本節中的下一行是'var action = $(例如,目標).data('action'),' –

+0

實際上,如果您更改HTML的結構,您會希望使用'$(e.target).parents(「。Flag」)''。我不明白你的數據操作集有衝突意味着什麼;孩子沒有'數據行動'。 – afuous

回答

1

您可以檢查元素,然後檢查其父元素。首先,檢查是否

$(e.target).attr('data-action') 

存在。如果沒有,請使用

$(e.target).parents(".Flag").attr('data-action') 
1

您可以使用事件委託來訪問屬性值。

$('div[data-action]').on('mouseenter', 'i.fa', function(e){ 
    console.log($(e.delegateTarget).data('action')) 
}) 
相關問題