0

イベント タイプを保持するためにデータ値を使用する追跡システムをセットアップしようとしています。私のHTMLは次のようになります。

<a href="#articles" class="track" data-track="article_search_results">Articles</a>
<a href="#books" class="track" data-track="books_search_results">Books</a>
<a href="#notes" class="track" data-track="notes_search_results">Notes</a>

JQuery は次のようになります。

$(document).delegate('.track', 'click', function(e) {   
    console.log($(this));
    console.log($(this).data("track")); 
});

クラス .track を持つすべての要素を使用して、そこからデータ トラック値を取得しようとしていますが、常に undefined が返されます。私は何を間違っていますか?

アップデート

コードに問題の原因となっているアイコンがあります:

<a href="#articles" class="track" data-track="article_search_results"><i class="icon-pencil"></i></a>
4

2 に答える 2

1

これを試して

           $(document).delegate('.track', 'click', function(e) {   
                console.log($(this).attr("data-track")); 
           });

JsFiddle: http://jsfiddle.net/FZEKC/

于 2013-03-29T00:39:42.460 に答える
1

を使用すると、要素から値をattr返すことができます。次に例を示します。data-track

コード:

$(document).on('click', '.track', function(e) {   
    var dataTrack = $(this).attr("data-track");
});

jQuery docs によると、delegateに取って代わられましonた。上記は を使用した例ですon

あるいは、あなたの場合、おそらくclick関数を使用することもできます。

$(".track").click(function(e) {   
    var dataTrack = $(this).attr("data-track");
});

フィドル:

使用on:
http://jsfiddle.net/jUSUK/1/

使用click:
http://jsfiddle.net/jUSUK/2/

詳細情報attr:

http://api.jquery.com/attr/

于 2013-03-29T00:39:51.163 に答える