我认为这两个功能没有任何区别。
使用以下JavaScript代码:
var x = {};
$(x).bind({
setData: function (event, key, value) {
console.log("setData()", key, value);
},
changeData: function (event, key, value) {
console.log("changeData()", key, value);
}
});
$(x).data("key1", "alpha");
$(x).data("key1", "beta");
$(x).data("key2", "gamma");
...我在控制台中获得以下内容:
setData() key1 alpha
changeData() key1 alpha
setData() key1 beta
changeData() key1 beta
setData() key2 alpha
changeData() key2 alpha
每次事件都会发生。
答案 0 :(得分:2)
在所有代码中调用的唯一地方是数据函数,一个在set之前调用,另一个在之后调用,但传入的值是相同的。
$this.triggerHandler( "setData" + parts[1] + "!", args );
jQuery.data( this, key, value );
$this.triggerHandler( "changeData" + parts[1] + "!", args );
答案 1 :(得分:1)