结合onload和onresize(jQuery)

我想调用负载上的function以及resize。

有没有更好的方法来更紧凑地重写?

$('.content .right').width($(window).width() - (480)); $(window).resize(function(e) { $('.content .right').width($(window).width() - (480)); }); 

您可以单独绑定到resize事件,并在加载时自动触发此事件:

 // Bind to the resize event of the window object $(window).on("resize", function () { // Set .right's width to the window width minus 480 pixels $(".content .right").width( $(this).width() - 480 ); // Invoke the resize event immediately }).resize(); 

最后的.resize()调用将在加载时运行此代码。

我认为最好的解决办法就是将它绑定到加载事件:

 $(window).on('load resize', function () { $('.content .right').width( $(this).width() - 480 ); }); 

发现重复的逻辑并将其分解为一个函数是很好的:

 function sizing() { $('.content .right').width($(window).width() - 480); } $(document).ready(sizing); $(window).resize(sizing); 

我要结合其他两个答案的最好的部分。 首先,将重复的代码移入一个函数。 其次,不要污染全局名称空间。

 $(document).ready(function() { var adjust_size = function() { $('.content .right').width($(window).width() - 480); }; adjust_size(); $(window).resize(adjust_size); }); 

我命名了adjust_size函数,因为我更喜欢用动词来定义面向动作的函数。

简单的方法:

 html: <body onload="$(window).resize()"> javascript: $(window).resize(function () { ... });