jQuery的setData / getData事件应该能够覆盖$ .data()的默认行为......但是如何?

时间:2010-11-05 00:08:23

标签: jquery events

查看1.4.3版本上的官方博客文章:http://blog.jquery.com/2010/10/16/jquery-143-released/

我对这句话(在“事件”下)完全感到困惑:

  

jQuery已经有了setData和   getData事件(广播   无论何时设置或获取数据   .data()方法) - 覆盖这些   方法可以覆盖   这些的默认行为   功能(即你可以返回一个   不同的价值或防止价值   从被设定)。

  1. “(...)有setData和getData事件(...) - 覆盖这些方法” - 哪些方法?!?

  2. “可以覆盖默认行为” - 怎么样?!?我已经查看了源代码,我无法想到“返回不同的值”或“阻止设置值。”

  3. 那些比我更了解的人?

1 个答案:

答案 0 :(得分:0)

您可以使用setDatagetData事件订阅这些活动:

$(document.body).bind('setData', function(event, key, value) {
    console.log(key + ': ' + value);
});

这将在调用以下内容时记录'example:hello,world':

$('a:first').data('example', 'hello, world');

除非我完全误解代码的工作方式,否则无法更改默认操作,包括e.preventDefault();。请参阅$.fn.data,{{1}}的源代码。