jQuery data()和'changeData'事件

时间:2011-03-23 19:06:55

标签: jquery

我可以向HTML元素添加click个事件,并让click事件更新$(document).data(key,value)

然后会触发$(document).bind('changeData', function() {...}))。知道了这一点,找出哪个HTML元素更新$(document).data()的最佳方法是什么?

E.g:

$(document).bind('changeData', function {
  // get the anchor that set $(document).data()
});

$('a').click(function() {
  $(document).data('key', 'value');
});

2 个答案:

答案 0 :(得分:3)

通过点击事件获取数据:

$('#elementSelector').click(function(e){
    $(document).data(key, val);
});

$(document).bind('changeData', function(e){
    // e.target?
});

如果没有,请尝试将目标存储在存储的数据中:

$('#elementSelector').click(function(e){
    $(document).data(key, {
        val: 'value',
        target: e.target
    });
});

然后当你有改变事件时:

$(document).bind('changeData', function(e){
    var data = $(this).data(key);
    var target = data.target;
    var value  = data.val;
});

答案 1 :(得分:2)

https://bugs.jquery.com/ticket/11718

jQuery的setDatachangeData事件自1.8以来已被弃用,并在1.9中删除。这意味着在2.X和3.X中,您无法再绑定到这些事件。