3

私の場合は非常に単純です。動的に要素にデータを格納しようとしappendedました。DOM私の問題は、immediate を介してデータを取得しようとするたびに、値が正常に返されますが、関数を介してイベントappended objectから返されたオブジェクトを介して が返されることです。以前にこれについて検索しましたが、stackoverflowの人々はキャメルケーシングなどを削除することを提案されただけで、私の場合は役に立ちませんでした. 提案や修正はより役に立ちます。clickonundefined

私のコード:

$(document).ready(function(){

    xElement = $('<li class="test">click this (because this contains data)</li>').appendTo('ul');

    jQuery.data(xElement,"val","value1");

    alert(jQuery.data(xElement,'val'));

    $(document).on('click','ul li',function(){ alert(jQuery.data($(this),'val')); });
     });

フィドル:

ここ

4

3 に答える 3

4

jQuery.data()jQuery オブジェクトではなく、生の DOM 要素を取ります。

直接渡すかthis、インスタンス メソッドを呼び出す必要があります ( $(this).data())

于 2013-07-10T18:00:51.007 に答える
1
$(document).ready(function(){
    xElement = $('<li class="test">click this (because this contains data)</li>').appendTo('ul');
    xElement.data("val","value1");
    //retrieving data from immediate object
    alert(xElement.data('val'));
    $(document).on('click','ul li',function(){ 
        //retrieving data through object from 'on'
        alert($(this).data('val')); 
    });
});

非常に奇妙ですが、このようにするとうまくいくようです。

フィドルメティス

于 2013-07-10T18:07:07.327 に答える