javascript - 在特定页面/主体类上执行 JavaScript 代码的最佳方式?

标签 javascript jquery

我知道有为此制作的库,例如 require.js,但我不想要任何复杂的东西。我只想运行当主体上有特定类时运行的 JS 代码。

我的尝试是为每个页面代码创建函数,并创建一个函数来检查主体是否具有执行代码的类名,然后运行它。

   var body = $('body');

   initPageOnClass('.home', initFrontPage());

   function initPageOnClass(className, func) {
    if (body.hasClass(className)) {
        return func;
    }
   }

   function initFrontPage(){ 
    // some code for the frontpage
   }

这可行,但我担心这可能是不好的做法。是吗?我知道页面越多,功能就会越多:

   initPageOnClass('.home', initAboutPage());

   initPageOnClass('.subscriptions', initSubscriptionPage());

   initPageOnClass('.team', initTeamPage());

但我不确定这是否是一个很大的拒绝,或者什么。我想正确地做到这一点。

执行此任务的正确或最佳方法是什么?

最佳答案

在这种情况下我宁愿使用一些属性和函数映射。您的标记将定义 role 属性:

<body role=home>...</body>

脚本可能如下所示:

var initMap = {
    'home':initAboutPage,
    'subscriptions': initSubscriptionPage,
    'team': initTeamPage };

// getting initializer function by content of 'role' attribute 
var initializer = initMap[ $('body').attr('role') ] || initAboutPage;

initializer();

然后检查我的 spapp - 非常简单(60 LOC)

关于javascript - 在特定页面/主体类上执行 JavaScript 代码的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30903850/

相关文章:

javascript - setTimeout 中的 Jquery 单击处理程序

Javascript - 动态改变setTimeout/setInterval的间隔值

asp.net - 使用 jQuery 将参数从一个 ASP.NET 页面传递到另一页面

html - 如何在不删除 "href"属性的情况下避免点击链接

javascript - 自动从 Woocommerce 谢谢重定向到传递变量的外部链接

javascript - 如何从网站复制文本并在我自己的 HTML 文件中使用它

javascript - 获取表单中当前选定的选项

javascript - Html5 Canvas 动画无法正常工作

javascript - 如何使按钮将我的页面重定向到另一个页面?

javascript - 以 json 或 html 形式返回数据库结果