伪造 window 调整大小,使所有仅调整大小的 JavaScript 加载

Fake a window resize, to make all resize-only JavaScript load

假设我有 JavaScript 在 window 调整大小时运行,但如果您使用 window.load 或 document.ready 它不起作用。 (我的情况)。

我不是在单独寻找 window.load 或 document.ready (jQuery)... 我想从字面上伪造 window 调整大小...以使仅调整大小的脚本加载。

如何在不调整 window 的情况下伪造 window 调整大小?

尽可能不要伪造任何东西。这会使您的代码更难阅读和理解。像这样重构您的代码:

function onResize(e)
{
    // does window.resize stuff
}

$(document).load(function(e){
     // when the document is loaded, do resize stuff as well
     onResize(e);
});

// add event listener to window.resize
$(window).resize(onResize);

只需调用 $(window).trigger('resize'); 它将触发调整大小,并且将调用您在调整大小上注册的任何内容。

$(window).resize(function() {
  alert("Work done when resize is being called");
});

$(window).resize(function() {
  alert("More work");
});

$("*").click(function(){
  alert("Triggering resize");
  $(window).trigger('resize');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Click anywhere to trigger the resize