Javascript 如何在jquery中检测文档大小的变化

Javascript 如何在jquery中检测文档大小的变化,javascript,jquery,browser,resize,size,Javascript,Jquery,Browser,Resize,Size,因此,假设单击某个内容会导致新内容加载到屏幕上,因此文档的高度会发生变化,而以前没有滚动条,现在实际上有滚动条 我如何使用jquery检测类似的情况 将调整大小事件绑定到窗口上仅检测窗口调整大小,而将其绑定到文档中不起作用 请不要使用domsubtreemedited事件。它很旧,不推荐使用,浏览器不支持它。在99.9%的情况下,您可以收听不同的事件。您很可能是使用jQuery和做AJAX工作的人之一,所以请看一下他们的工作 所有活动都可用。您必须检测$(document.bind('DOMS

因此,假设单击某个内容会导致新内容加载到屏幕上,因此文档的高度会发生变化,而以前没有滚动条,现在实际上有滚动条

我如何使用jquery检测类似的情况


将调整大小事件绑定到窗口上仅检测窗口调整大小,而将其绑定到文档中不起作用 请不要使用
domsubtreemedited
事件。它很旧,不推荐使用,浏览器不支持它。在99.9%的情况下,您可以收听不同的事件。您很可能是使用jQuery和做AJAX工作的人之一,所以请看一下他们的工作


所有活动都可用。您必须检测
$(document.bind('DOMSubtreeModified',function(){…})并检查上一次点火的尺寸更改

var height = $(this).height(),
    width  = $(this).width();
$(document).bind('DOMSubtreeModified', function() {
    if($(this).height() != height || $(this).width() != width) {
        recalibrate();
    }
});
此事件在一次对DOM执行任何操作时触发。因此,它将降低浏览器的速度


我们应该有更好的选择。您可以为我们提供有关您的场景的更多信息吗?

您可以尝试以下百分比滚动事件:

您可能需要添加检查以查看垂直滚动条是否存在:

var hasVScroll = document.body.scrollHeight > document.body.clientHeight;
这是解决办法

// ajdust margins when page size changes (ie rotate mobile device)
$(window).resize(function() {
  // Do something more useful
  console.log('doc height is ' + $(window).height());
});

您可以将
$(document)
更改为
$(“body”)
或类似的内容。基本上,有一个按钮,当用户单击该按钮时,jquery将启动load()函数,该函数使用ajax从另一个url加载另一个内容,并用该内容替换一个空div……我也不能在load()中放入某些函数的回调,因为当我这样做时,函数在整个加载的内容甚至显示在屏幕上之前启动,因此在大小更改实际发生之前,然后在加载内容时执行检查。这意味着,您必须在
.load()
的回调函数中包含check。是的,但是超时是不可靠的,因为加载所需的时间是可变的,因此如果超时时间不够长,它可能会失败,但如果超时时间太长,它可能最终会无效……除了多长时间足够