2016-11-09 15 views
0

私はデータアクションをチェックする大きなスクリプトを作成していますが、今はいくつかのアイコンを表示するためにホバーを実装しました。そのよう:$(e.target)<i></i>あるよう

<div class="Flag" data-action="mail-flag"><i class="fa fa-flag" aria-hidden="true"></i></div> 

は、しかし、これはアイコンの中に、代わりにプレーンテキストを持っていないと、if ($(e.target).attr('data-action')) {は動作しません。

<div>...</div>if ($(e.target).attr('data-action')) {を使用するには、data-action="mail-flag"<i></i>に追加せずにどうすればよいですか?

+0

'$(e.target).parent()。ATTR( 'データ・アクション')' – afuous

+0

私は子供と親がいるでしょう '日付action'セットを持っているがどのような場合には、このことについて考えました紛争。私はこれがどれほど可能性が高いのか分かりませんし、私は今までこれをやったとは思わないでしょう。このセクションの次の行は、 'if'の後に' var action = $(e。 target)).data( 'action')、 ' –

+0

実際には、HTMLの構造を変更する場合に '$(e.target).parents("。 "Flag")を使用します。私はあなたが矛盾する 'data-action'セットを意味するのか理解していません。子供には「データアクション」はありません。 – 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')) 
}) 
関連する問題