重构$(document).ready(),目前有2个实例

tom*_*tom 3 javascript jquery refactoring

我有以下JavaScript函数,但想要重构$(document).ready(),因为我有2个实例.我怎样才能做到这一点?

FlashMessenger = {
    init: function() {
        setTimeout(function() {
            $(".flash").fadeOut("slow", function () {
                $(".flash").remove();
            });
        }, 5000);
    }
}

SelectLanguage = {
    init: function() {
        $('#selectLanguageId').change(function() {
            $('#frmSelectLanguage').submit();
        });
    }
}

$(document).ready(FlashMessenger.init);
$(document).ready(SelectLanguage.init);
Run Code Online (Sandbox Code Playgroud)

Ben*_*son 8

为$(document).ready设置多个处理程序是完全可以接受的,尽管你可能有充分的理由去做其他我不知道的事情.您可能有兴趣知道$(handler)可以用作$(document).ready(handler)的简写:

$(FlashMessenger.init);
$(SelectLanguage.init);
Run Code Online (Sandbox Code Playgroud)

如果你真的想在一个电话中使用它们,试试这个:

$(function() {
    FlashMessenger.init();
    SelectLanguage.init();
});
Run Code Online (Sandbox Code Playgroud)

  • 毕竟@TJ的OP代码似乎并不依赖它. (2认同)