jQuery data()在它被改变时监听

时间:2014-08-06 09:33:31

标签: javascript jquery

是否可以(如果是,如何)检查,检测,聆听或观察

$('body').data('myValue',false) 

更改为true?

当然我把它改成了某个地方。线索是我在动画结束时更改它,如果完成则需要在其他地方检查。所以,当它改变价值时,我必须做点什么......

2 个答案:

答案 0 :(得分:5)

  

当然我把它改成了某个地方。线索是我在动画结束时更改它,如果完成则需要检查其他地方。

这是自定义事件可以派上用场的地方。在你改变它的地方:

$('body').data('myValue', true).trigger('datachanged');

您需要知道的地方:

$('body').on('datachanged', function() {
    // Use the updated information
});

有关自定义事件的详情,请在the on API doc pagethe trigger API doc page上搜索“自定义”。

答案 1 :(得分:0)

有几种方法可以做到这一点:

  1. 使用setInterval检查元素属性的更改
  2. 使用此插件:http://meetselva.github.io/attrchange/。我还没有用过这个,所以我不能说它是否运作良好
  3. 使用 DOMAttrModified DOM事件。 IE的等价物是 propertychange 。这并没有很好的浏览器支持,因此最好使用setInterval添加回退。
  4. 作为T.J. Crowder建议,在更改数据属性时触发事件