我怎样才能把这个jQuery片段写得更漂亮呢

我怎样才能把这个jQuery片段写得更漂亮呢,jquery,events,function,Jquery,Events,Function,这两个函数应该在加载和调整大小时启动。我想知道如何把它写得更紧凑、更漂亮。有什么想法吗 $(document).ready(function() { fullScreen(); footer(); $(window).resize(function() { fullScreen(); footer(); }); }); 好吧,你可以把它们组合成一个函数,但我不确定它是否更“漂亮”: 它确实解决了不重复自己的问题 关闭主题:我还将$

这两个函数应该在加载和调整大小时启动。我想知道如何把它写得更紧凑、更漂亮。有什么想法吗

$(document).ready(function() {
    fullScreen();
    footer();
    $(window).resize(function() {
        fullScreen();
        footer();
    });
});

好吧,你可以把它们组合成一个函数,但我不确定它是否更“漂亮”:

它确实解决了不重复自己的问题

关闭主题:我还将
$(文档).ready(function(){…
切换到
jQuery(function($){…
。它做同样的事情,但如果有用的话,会使引用的代码与兼容。如果您永远不想
无冲突
兼容性,可以使用
$(function()){…
相反,但是,对于六个额外字符…

您可以在注册处理程序后立即触发事件:

$(document).ready(function() {
    $(window).resize(function() {  // Register handler.
        fullScreen();
        footer();
    }).resize();                   // Trigger event.
});
@T.J.Crowder的答案(调用另一种方法)看起来是一个理想的解决方案

对一个新方法的调用捕获了对这两个方法的调用的意图,使其功能化

此外,如果您需要更改加载或调整大小时的操作,您只需使用一种方法进行更改,使其可维护

一个有意义的名称,如ReRejustLayoutAfterResize,用于描述意图,使其可读性


功能性、可维护性和可读性对我来说是美好的,我相信任何人都会维护它。

你有两个不必要的代码,为什么要写这样一个函数声明,为什么要在调用匿名函数时包装函数调用?触发一个事件只是调用你自己的函数……委婉地说,这不是最佳的。@T.J.,我支持se你说得对。我的目标是“简洁美观”:@T.J.Crowder和@Frédéric Hamidi,为什么这不是最佳的?因为可读性差?它工作而且紧凑,对我来说很漂亮。@Thomasz,嗯,可能还有其他处理程序注册在
调整大小
事件上,所以
全屏()
页脚()
将被调用,但其他函数也可能被调用,作为触发事件的副作用。@Thomasz:支持@Frédéric关于其他处理程序的说法。而且,这只是一个很长的过程,为什么要通过事件链触发合成事件,这样你就可以直接调用一个函数呢?这与enginee有关正如弗里德里克所说,它有潜在的负面影响。这不是一个答案?这是一个评论。我认为@Marcus和@Tomalak也是如此,但因为它包含了关于为什么这种方法可以满足美丽标准的信息,所以作为一个答案似乎更有用,而不是一个可能无法扩展/阅读的狭隘评论更理想,但在这种情况下,我更喜欢弗里德里克·哈米迪(Frédéric Hamidi)更简洁的答案;)谢谢。
$(document).ready(function() {
    $(window).resize(function() {  // Register handler.
        fullScreen();
        footer();
    }).resize();                   // Trigger event.
});
$(function() {
    function both() {
        fullScreen();
        footer();
    }

    both();
    $(window).resize(both);
});
$(document).ready(function () {
        var doStuff = function () {
            fullScreen();
            footer();
        };
        doStuff();

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