结合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 () { ... });