1

可能重复:
使用 jQuery 检测 div 的高度何时发生变化

我想知道是否有任何功能可用于跟踪元素的更改?我想跟踪height一个元素,如果达到max-height,那么addClass一些东西。

跟踪我的意思是连续的,否则我只会写一个 if 语句。

4

2 回答 2

2

如果您控制对元素的更改将发生的方式(例如,因为您提供了进行这些更改的接口),您应该实现自己的回调系统,或者在发生更改时运行一个函数。

如果您不控制它们,则必须定期监视元素并检查更改,使用setInterval或递归调用setTimeout. 当您不再需要监视更改或元素变得不可用时,请记住清除间隔/中断超时循环。如果不这样做,则回调中引用的任何对象都不会被垃圾收集。

于 2013-01-16T18:17:34.200 回答
1

使用 a setInterval,像这样:

var maxHeight = 0;
setInterval(function() {
    if($("#myelement").height() >= maxHeight) {
        // do stuff when div is too tall
    }
}, 50);
于 2013-01-16T18:15:13.853 回答