1

このコードでデータを保存しています。

baslat: function(data) {
            var $bu = $(this).get(0);
            if(!$.data($bu, "ipucu_secenekleri")){
                metodlar.domEkle.apply(this, data);
                var ipucu_secenekleri = $.extend({}, s, data);

                $.data($bu, 'ipucu_secenekleri', ipucu_secenekleri);

            }

            return this;
        },

しかし、ipucu_secenekleriという名前のデータを取得しようとすると

            domEkle: function (data) {

               var $bu = $(this).get(0),
               icerik = $.data($bu,"ipucu_secenekleri");
               console.log(icerik) //undefined
            }

それ以上...これらも未定義です:

$.data($bu).ipucu_secenekleri

var datam = $.data($bu);
datam.ipucu_secenekleri;

しかし、ここに面白い部分があります。データ全体を取得してコンソールに表示しようとすると、保存したデータが表示されます...

$.data($bu); //it returns the data object which contains ipucu_secenekleri.

しかし、ご覧のとおり、変数への代入は役に立ちません。サブレベルに到達することも、for in loop に到達することもできません。

for(var i in datam){console.log(datam[i])} //no effect
4

1 に答える 1

0

$.data()は低レベルのメソッドです。.data()メソッドを試す必要があります。

あなたのコードで置き換えます

$.data($bu, "ipucu_secenekleri")

$bu.data("ipucu_secenekleri")

...等々。

于 2012-08-07T07:33:29.463 に答える