2012-06-15 38 views
4

我的身体标记中有一个由滑块更改的数据段属性。当它改变时,我需要基于这个值来触发一个函数。如何在jQuery中监视body'data'属性的变化?

我不知道如何在这种情况下附加一个事件监听器?

+2

您可以使用激活滑块上的事件来检查值吗? –

+0

滑块在更改值时触发事件吗? –

回答

3

`当DOM节点属性发生变化时,没有可靠的跨浏览器方式来接收事件。一些浏览器支持“DOM突变事件”,但是你不应该依赖它们,并且你可能会用谷歌那句话来了解这种技术的命运的历史。

如果滑块控件没有激发自定义事件(我认为大多数现代事件会这样做),那么最好的方法是设置一个setInterval()方法来轮询值。

+1

...或获得更好的滑块。 – SLaks

+0

我宁愿一个'setTimeout()'循环本身而不是'setInterval()',因为'setInterval()'可能会被备份并导致问题,可能会报错。 –

+0

@Jared - 我不同意这种情况。检查单个节点的属性花费的时间可以忽略不计。 “备份”是不太可能的,并且setInterval在语义上更好。随后执行setInterval时可能会纠正错误报告。如果我们正在处理远程服务或其他高潜在的延迟情况,情况会有所不同。 – Triptych