我可以向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');
});
答案 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的setData
和changeData
事件自1.8以来已被弃用,并在1.9中删除。这意味着在2.X和3.X中,您无法再绑定到这些事件。