8

如何让此功能不仅在调整窗口大小时运行,而且在初始页面加载时运行?

$(window).resize(function() {
...  
});
4

5 回答 5

18

你会想要使用:

$(document).ready(function() { /* your code */ });

让事情发生在onload。如果你想让某些东西在 onload 和 onresize 上工作,你应该这样做:

onResize = function() { /* your code */ }

$(document).ready(onResize);

$(window).bind('resize', onResize);
于 2010-04-08T02:21:49.973 回答
8

我认为最好的解决方案就是将它绑定到 load 和 resize 事件:

$(window).on('load resize', function () {
    // your code
});
于 2014-07-13T10:41:20.857 回答
1

此行为是设计使然。

您应该将代码放入命名函数中,然后调用该函数。

例如:

function onResize() { ... }

$(onResize);
$(window).resize(onresize);

或者,您可以制作一个插件来自动绑定和执行处理程序:

$.fn.bindAndExec = function(eventNames, handler) {
    this.bind(eventNames, handler).each(handler);
};

$(window).bindAndExec('resize', function() { ... });

请注意,如果处理程序使用该event对象,它将无法正常工作,并且它不会涵盖该bind方法的每个重载。

于 2010-04-08T02:19:32.003 回答
1
$(document).ready(onResize);
$(window).bind('resize', onResize);

没有和我一起工作。

尝试

$(window).load('resize', onResize);
$(window).bind('resize', onResize);

反而。

(我知道这个问题很老了,但谷歌把我发到这里了,所以......)

于 2012-03-22T12:44:52.410 回答
0

另一种方法,您可以简单地设置一个处理程序,并自己欺骗一个 resize 事件:

// Bind resize event handler through some form or fashion
$(window).resize(function(){
  alert('Resized!');
});

// Trigger/spoof a 'resize' event manually
$(window).trigger('resize');
于 2014-04-05T04:36:45.563 回答