jquery在div上调整侦听器的大小

jquery在div上调整侦听器的大小,jquery,resize,listener,Jquery,Resize,Listener,情况就是这样,我有两个分区紧挨着。一个div的高度非常动态,这基本上意味着它可以增长和收缩以适应其内容。例如,这个div包含可以折叠打开或关闭的内容,或者包含可以扩展以适合ajax加载内容的容器 现在,在这个div旁边是另一个div,它通过css整齐地跟随第一个div的高度。效果很好。但问题是:我想根据第二个div的高度改变它的内容 换句话说,Div1的大小会发生变化,Div2会通过css来实现,我现在需要触发一个ajax调用,用新内容重新填充Div2,以适应它的新大小 有人知道我如何使用jqu

情况就是这样,我有两个分区紧挨着。一个div的高度非常动态,这基本上意味着它可以增长和收缩以适应其内容。例如,这个div包含可以折叠打开或关闭的内容,或者包含可以扩展以适合ajax加载内容的容器

现在,在这个div旁边是另一个div,它通过css整齐地跟随第一个div的高度。效果很好。但问题是:我想根据第二个div的高度改变它的内容

换句话说,Div1的大小会发生变化,Div2会通过css来实现,我现在需要触发一个ajax调用,用新内容重新填充Div2,以适应它的新大小

有人知道我如何使用jquery实现这一点吗?如果可能,是否不使用超时


干杯。

我唯一能想到的就是让计时器每隔
X
秒检查一次高度

大概是这样的:

function checkHeightTimer(){
    var div1 = $('#div1');
    var div2 = $('#div2');
    var somesize = #somenumber here;
    if(div1.height() > somesize){
        //do something to div2
    }
    setTimeout(checkHeightTimer, 500); //at 500 miliseconds
}
正如所建议的,有一些不错的插件可用于此功能

如果您不喜欢插件的想法,另一个简单的解决方案是只要在内容被修改时在div上触发一个“resize”事件。然后,您可以按照预期使用resize()监视它,使用优雅的

工作起来很有魅力


我已经测试了attrchange,但这不起作用,损失了2小时的工作时间:(

allmoast duplicate,请在发布问题之前搜索谢谢!我绝对不反对插件,这就像是一种享受!大家好。我来晚了,但你们到底会如何使用这段代码?怎么称呼它?@JeremyMiller这里的想法是,每当内容更新时,你们都会调用附录content(…)方法(毕竟,您必须调用某些东西)。在appendContent中,您只需触发自己的调整大小事件,指示div已调整大小。
$div.bind('resize',…)
中的代码自动调用(它侦听调整大小事件)这是有道理的,但您要在哪里添加要检查的选择器?这似乎是我无法理解的。假设我有一个名为“#dynamic”的div,它到底会去哪里,以便我注意该div中的内容?您需要在一个位置更新内容,并希望进行一些不引人注目的监视(想想控制反转)同样,在其他地方,在大多数情况下可能会使它变得更简单。任何需要定期检查的解决方案都可能被认为是一种不太优雅的“黑客”而不是基于事件的解决方案。有时不可避免?非常好的脚本!到目前为止,这是唯一一个不使用计时器间歇轮询元素大小以检测更改的脚本。这种技术带来了糟糕的性能!谢谢@Jaroslav
function appendContent($div, content) {
   $div.append(content).trigger($.Event('resize'));
}

$div.bind('resize', function(e) {
   // all your magic resize mojo goes here
});