这两个函数应该在加载和调整大小时触发。我想知道如何写它更紧凑和美丽。有什么想法吗?
$(document).ready(function() {
fullScreen();
footer();
$(window).resize(function() {
fullScreen();
footer();
});
});
答案 0 :(得分:6)
您可以在注册处理程序后立即触发resize事件:
$(document).ready(function() {
$(window).resize(function() { // Register handler.
fullScreen();
footer();
}).resize(); // Trigger event.
});
答案 1 :(得分:4)
嗯,你可以将它们组合成一个功能,但我不确定它是否更“漂亮”:
jQuery(function($) {
both();
$(window).resize(both);
function both() {
fullScreen();
footer();
}
});
它确实解决了不重复自己的问题。
偏离主题:我还将$(document).ready(function(){...
切换为jQuery(function($){...
。它做了同样的事情,但是引用的代码与noConflict
兼容,如果它有用的话。如果您永远不会想要noConflict
兼容性,那么您可以使用$(function(){...
代替,但是,嘿,还有六个额外的字符......
答案 2 :(得分:2)
$(function() {
function both() {
fullScreen();
footer();
}
both();
$(window).resize(both);
});
答案 3 :(得分:1)
@ T.J。 Crowder的回答(对另一种方法的调用)看起来是一个理想的解决方案。
对新方法的调用会捕获对这两种方法的调用的意图,使其功能。
此外,如果您需要更改加载或调整大小时的操作,您只需在一种方法中更改它,使其可维护。
有意义的名称,例如描述意图的readjustLayoutAfterResize使其可读。
功能性,可维护性和可读性对我来说是美丽的,我确信无论谁维护它。
答案 4 :(得分:0)
$(document).ready(function () {
var doStuff = function () {
fullScreen();
footer();
};
doStuff();
$(window).resize(function () {
doStuff();
});
});