首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在多个页面上使用多个jQuery插件?

在多个页面上使用多个jQuery插件?
EN

Stack Overflow用户
提问于 2012-12-18 11:05:07
回答 2查看 152关注 0票数 0

我有一个使用几个JavaScript/jQuery的站点,然后我有一个default.js文件,它为每个不同的页面使用插件功能。

例如,我有一些插件包括:

  • 自定义滚动条插件
  • 幻灯片插件
  • 曲奇插件
  • 等。

然后在default.js文件中,我将执行如下操作(伪代码):

代码语言:javascript
复制
var scrolling = findScrollbarDiv;
scrolling.ScrollFunction({ options });

(我的幻灯片+其他插件也是如此)

但是,如果存在一个findScrollbarDiv返回null的模板,则会得到一个错误,如下所示:

ScrollFunction不是一个函数

这并不是因为元素返回null,而是因为我没有包含这个页面的插件文件。我的理由是,我不想将每个文件都包含在每个页面上(即使不需要),因为这可能会导致不必要的HTTP请求(特别是在主页上,它只需要一个插件)。

这个错误反过来又扰乱了JavaScript的其余部分。

克服这一问题的最佳方法是什么?我是否应该将每个插件文件都包含在每个页面上,而不管是否需要它?或者,是否有类似于以下内容的JavaScript可以使用:

代码语言:javascript
复制
var scrolling = findScrollbarDiv;
if(scrolling != null) {
    scrolling.ScrollFunction({ options });
}

(这让我觉得有点笨重,但如果这是最好的解决方案,请告诉我)

还是使用一个默认的js文件来启动所有插件都是个坏主意?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-18 11:09:15

如果您使用的是相同的头文件,并且不介意包含该文件,那么在将事件附加到该文件之前,您可以始终检查元素是否存在。

以下是一个例子:

代码语言:javascript
复制
if(jQuery('#someElement').length > 0){
    jQuery('#someElement').ScrollFunction({ options });
}

或者为每个函数都有一个JavaScript文件。

所以你会有一个给画廊,一个给饼干等等。并且只包括每一页所需的内容。

票数 1
EN

Stack Overflow用户

发布于 2012-12-18 11:17:34

您只需将其作为条件语句执行,并在以下情况下避免出现笨拙的情况:

代码语言:javascript
复制
scrolling && scrolling.ScrollFunction({ options });

这对于您想要调用的任何方法都非常有效,并且希望在此之前检查父对象是否存在。您可以更进一步(如果需要)并在执行之前检查方法本身是否存在:

代码语言:javascript
复制
scrolling && scrolling.ScrollFunction && scrolling.ScrollFunction({ options });

如果滚动是一个集合,只需检查它的长度(如果长度为== 0,则语句将失败):

代码语言:javascript
复制
scrolling.length && scrolling.ScrollFunction({ options });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13931577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档