22

我的 jQuery .ready 函数中的一些(嗯,几乎所有)代码在调整窗口大小时也适用,因为它是布局工作。但是,由于它是相同的代码,我如何“组合”这两个函数,这样我的代码就不会重复自己(并且维护起来很混乱)?

谢谢!

4

4 回答 4

58
$(document).ready(myfunction);
$(window).on('resize',myfunction);

function myfunction() {
    // do whatever
}

另一种技术是将.trigger()一个事件置于另一个事件中:

$(window).on('resize',function() {
    // do whatever
});
$(document).ready(function() {
    $(window).trigger('resize');
});

如果您将代码放在页面底部以避免需要$(document).ready,它会变得更加简单:

$(window).on('resize',function() {
    // do whatever
}).trigger('resize');
于 2011-09-13T16:05:46.580 回答
12

另一种更好的选择

$(window).on("load resize",function(e){
  function abc() {
    // code here
  }
});
于 2015-08-07T20:27:38.483 回答
8

像这样的东西??

function mySetupFunction() {
    // stuff here.
}

$(document).ready(mySetupFunction);
$(window).resize(mySetupFunction);
于 2011-09-13T16:05:45.317 回答
0

以下代码可能有助于在resize is ready.

var resizeTimer;

$(window).on('resize', function(e) {

  clearTimeout(resizeTimer);
  resizeTimer = setTimeout(function() {

    // Run code here after resizing has done
            
  }, 250);

});

这是以下问题,即在调整大小时代码正在运行。

$(window).on('resize', function(e) {
  // Run code here while resizing is under going
});
于 2021-06-11T18:37:49.670 回答