0

私はこのようなdivを持っています:

<div id="something-1" data-options='{"pause":"YES","delete":"NO", "kill":"NO"}'></div>

私が行っているのは、いくつかの ajax リクエストであり、データ オプションを次のように変更します。

$('#something-1' + item.id).attr("data-options", '{"pause":"YES","delete":"YES", "kill":"NO"}');

firebug で調べると、変更されたデータ オプションが html に表示されます。

次に、この「テスト」関数を firebug からトリガーして、ajax の更新後にデータが変更されたかどうかを確認します。

(function() {
        window.checkChanges = checkChanges;
        function checkChanges(id) {
        var dataOptions = $("#" + id).data('options');

        for(var index in dataOptions) {
            console.log(index,dataOptions[index]);
        };
        }
    })();

しかし、何らかの理由でデータオプションは ajax リクエストの前後で同じです。どうにかしてこれにライブ機能を組み込む必要がありますか? または何か他のものですが、何がわかりませんか?助言がありますか?

編集

Ajax リクエストの変更の削除YES

4

2 に答える 2

1

選択したdivのIDを混同した可能性はありますか? 偽の ajax-request では、チェックに存在しない「何か」の後に item.id を追加します。その後、問題なく動作します。

http://jsfiddle.net/EVyVT/

charlietfl は、オブジェクトの周りの引用符を省略できると指摘しましたが、引用符でも機能すると思います。

于 2012-10-18T11:37:10.470 に答える
0

に設定しようとしているオブジェクトを囲む引用符を削除してoptions、文字列ではなくオブジェクトを渡すようにしますdata

$(selector).attr("data-options", {"pause":"YES","delete":"YES", "kill":"NO"});

デモ: http://jsfiddle.net/8A3LE/

1 つの値のみを変更する別の方法

$(selector).data('options').delete='YES'
于 2012-10-18T11:26:21.530 に答える