0

我现在正在完成我的项目,发现每个页面上都有很多 JavaScript 代码。它不包含在“.js”文件中,而是在页面本身中编码。我认为这是一个坏主意,所以现在我试图将它们全部放在一个 .js 文件中并将其包含在每个页面中。

我现在面临的唯一问题是:某些功能仅在某些页面上调用,并且取决于 jquery 插件的包含。然而,并非所有页面都需要插件。

示例:在主页上,我需要将 Country Dropbox 与 City Dropbox 链接起来,因此我需要 jquery 的 jchained.js 插件。我需要使用的代码是:

$(function(){
    $("#city").chained("#country");
});

当我将此函数添加到 .js 文件中,并打开一个不需要链接保管箱的页面时,逻辑上会出现错误:

TypeError: $("#city").chained 不是函数

因此,如果我正确理解这一点,为了将 .js 文件与我所有不同的功能用于不同的插件,我需要将所有插件包含到所有页面中吗?

感谢您的想法和帮助。

4

2 回答 2

1

这完全取决于代码的结构或当前代码的复杂程度。

一个直接的解决方案是,

  1. 给每个页面一个id(可能在body标签上)。
  2. 将所有代码放在一个外部 JavaScript 文件中。
  3. 仅当该特定页面需要该 body 元素上的 id 时,才执行该特定页面的代码。就像是 :

    if ( $('body').attr('id') == "home" ) { /* 在此处添加主页 JS */ }

你可以试试这个。

如果我错了,请纠正我。

于 2012-07-29T18:00:58.737 回答
1

就个人而言,我认为您不必担心包含大量 .js 文件,这是 Web 开发的一部分。另一种选择,虽然稍微有点乏味,是您可以检查该函数是否存在(如果插件 .js 已包含),如果存在则调用它:

if(typeof yourFunctionName == 'function') {
    yourFunctionName();
}
于 2012-07-29T18:01:16.800 回答