【发布时间】:2016-08-19 17:16:36
【问题描述】:
我有这 2 段代码
function fixFooter() {
var wrapper = $('#disqus_wrapper').height();
if ( wrapper > 200 ) {
$(window).trigger('resize');
}
};
var element = $('#disqus_wrapper');
new ResizeSensor(element, function() {
fixFooter();
});
预期效果是每次 div#disqus_wrapper 改变高度时窗口都会调整大小。 (修复 cmets 和页脚重叠)
代码有效,但只有在页面加载后一次。每次 div 高度变化时,我都需要它来调整大小。我尝试使用警报切换触发器('resize')功能,一切正常。知道为什么触发器('resize')只能工作一次,我该如何解决?
更新;
html是这样的,因为我正在加载Disqus评论系统
<div id="disqus_wrapper"><div id="disqus_thread"></div></div>
为了检测 div 高度变化,我正在使用这个库 https://github.com/marcj/css-element-queries (ResizeSensor.js)
【问题讨论】:
-
也向我们展示您的事件监听器。
-
@eisbehr ,我使用github.com/marcj/css-element-queries 来检测高度变化。检测工作正常,当我使用 alert() 时,它会在每次 div 改变高度时启动。但是当我使用 $(window).trigger('resize'); 时它只工作一次;
-
请@Askaoru 发布您的 Html 和事件监听器
-
然后您检查
disqus_wrapper元素的高度是否发生变化? -
@BogdanKuštan 是的。
标签: javascript jquery