如何仅在需要时包含js lib文件

时间:2015-09-04 20:34:11

标签: javascript jquery

我们说我是一个主要的js文件app.js。我在5个不同的页面中使用此文件。

app.js中,我使用了3个不同的库文件,这些文件仅在某些页面中需要。所以我只在那些单页中包含了那些js文件。 (不是所有5页)。

在我的app.js中,我是

$('#describe').redactor():

富文本的库文件。

因此,如果我加载任何其他未使用redactor.js文件的网页,我会收到以下错误:

Uncaught TypeError: $(...).redactor is not a function

那么,我怎样才能避免在app.js文件中调用此函数?

3 个答案:

答案 0 :(得分:1)

一种方法是在调用元素之前测试元素的存在。这打破了jQuery的可链接性:

var $describe;
$describe = $('#describe');
if ($describe.length) {
    $describe.redactor();
}

当然,这假设#describe仅出现在包含jQuery.redactor插件的网页上。

另一种方法是使用requirejs(或类似工具)来处理依赖关系管理。

答案 1 :(得分:1)

我会尝试这样的事情:

{{1}}

答案 2 :(得分:0)

这可能对你的项目来说太过分了,但你应该考虑使用requirejs。其中一个示例项目可以找到here