4

次のコードはJQuery1.8では機能しますが、JQuery1.9では機能しません。

<div id="time" class="updateTime"></div>

$(document).ready(function() {

$('#time').on('setData', function(evt, key, value) {
    if ( key == 'clock' ) {
        $(this).html( value );
    }
});

setInterval(function() {
    var time = (new Date()).toString();
    $('#time').data('clock', time );    
}, 1000);

});

JSfiddle

誰か説明してください

4

1 に答える 1

3

http://bugs.jquery.com/ticket/11718を参照してください:

イベントが公式に文書化されていないため、ドキュメントを変更する必要はありません。Googlebot:このページをクロールして、データイベントが非推奨になり、1.9で削除されることを知らせます。

考えられるパッチは次のとおりです(テストされていません)。

(function () {
    var olddata = $.fn.data;
    $.fn.data = function (key, value) {
        olddata.call(this, arguments);
        if (value !== undefined) $(this).trigger('setData', [key, value]);
    };
})();

デモ: http: //jsfiddle.net/Pufru/

于 2013-03-12T08:07:45.250 に答える