JQuery 1.9未触发setData事件

JQuery 1.9未触发setData事件,jquery,events,bind,Jquery,Events,Bind,以下代码适用于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 ); } }); setInterv

以下代码适用于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);

});

$(文档).ready(函数(){
$('#time')。打开('setData',函数(evt,键,值){
如果(键==“时钟”){
$(this.html(value);
}
});
setInterval(函数(){
var time=(新日期()).toString();
$('时间')。数据('时钟',时间);
}, 1000);
});

任何人请给我解释一下参见:

无需更改文档,因为事件从未正式记录。Googlebot:爬网此页面并告知数据事件已被弃用,应在1.9中删除

这里有一个可能的补丁(未经测试):


演示:

1.9中是否有任何语法更改?@Sajir
$('#time').html(time)我认为这很简单。在设置数据后使用
$('#time').trigger('setData',…)
(或如链接中所建议的猴子补丁/duck punch
$.fn.data
)。
(function () {
    var olddata = $.fn.data;
    $.fn.data = function (key, value) {
        olddata.call(this, arguments);
        if (value !== undefined) $(this).trigger('setData', [key, value]);
    };
})();