jquery - 是否有一个好的 jQuery 模式来管理初始化?

标签 jquery design-patterns

基本上我想做这样的事情:

$(document).ready(function() {  
    if ($(body).attr("class") === "HomePage") {  
        HomePage.init(); //bind events for home page (Crockford's module pattern)
    } else if ($(body).attr("class") === "AboutPage") {  
        AboutPage.init(); //bind events for about page  
    }  
});

原因是我可以将所有内容压缩到一个 js 文件中,从而减少 http 请求的数量。这个解决方案绝对不优雅,因为每当我添加新页面时,我都需要添加另一个“else if”语句。我可以使用:

$(document).ready(function() {  
    eval($(body).attr("class") + ".init();");
});

但是 eval 是邪恶的,我不知道使用这种方法对性能的影响。

最佳答案

为什么不使用 eval 来调用 javascript 对象 [] 呢?

假设所有对象的范围都是全局的,为什么不尝试:

$(document).ready(function() {  
    window[$(body).attr("class")].init();
});

关于jquery - 是否有一个好的 jQuery 模式来管理初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300302/

相关文章:

c++ - 如何选择正确的架构/设计模式

rest - 休息应用程序中的用户上下文

java - 多态性和接口(interface) - 澄清?

javascript - 使用回调函数调用 Ajax 服务

javascript - 隐藏和显示 div

c# - Bootstrap 模态显示在页面上,而不是隐藏

design-patterns - 为什么需要抽象工厂设计模式?

c# - MVVM ViewModel与View交互,是真的MVVM吗?

javascript - 将 jquery-script 与 waypoints JS 连接

jquery - 如何在图像背景上固定按钮,并在调整大小时将其保留在那里?