jQuery(. .).Plugin不是一个函数,因为js文件没有加载
jQuery(...).plugin is not a function because js file is not loaded
我使用了一个插件(在这个例子中它是选择性的)。我只在产品页面加载插件javascript文件。
我使用的代码是:jQuery('.myselectpicker').selectric({});
,位于一个自定义javascript文件中,该文件加载在每个页面上。
如果我转到另一个页面,然后是产品页面,我得到一个jQuery(...).selectric is not a function
错误。
我明白为什么我得到错误,因为插件javascript文件不包括在头部(仅在产品页面上)。
但是有什么我可以把周围的jQuery('.myselectpicker').selectric({});
代码,所以它不会返回一个错误在其他页面上而不是产品页面?
我不想将代码添加到插件javascript文件中,也不想将代码添加到仅加载在产品页面上的单独javascript文件中。出于性能考虑,我不想在每种页面类型中都包含所有javascript文件
您可以使用jquery的isFunction
函数- https://api.jquery.com/jQuery.isFunction/
// Will trigger selectric() function only if it's lib included
if( $.isFunction( $.fn.selectric ) ){
jQuery('.myselectpicker').selectric({});
}
检查selectric
是否加载的另一种方法是检查页面上是否有任何元素需要它,例如:
if (jQuery('.myselectpicker').length > 0)
jQuery('.myselectpicker').selectric({});
这将给出一个错误-所以可以与isFunction
结合(见其他答案,不需要在这里重复)-但是,会让你知道哪些页面需要插件,但缺少它,而不是只是缺少功能而没有警告。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- CKeditor预览插件.js,为Chrome和IE进行编辑.因为它拒绝CSS样式
- 为什么我的 ajax 调用没有生成,因为我包含 ajax 的 js 文件包含在 iframe 中
- Flowplayer JS API 不起作用,因为 Flowplayer 未“加载”
- 织物 js 粗斜体不起作用,因为 JSON 中的字体样式对象
- 为什么Ractive.js reset()和update()方法重复模板,因为有一个带有array.protype.so
- <a>超文本电子邮件链接的标签.JS搞砸了我的下拉列表,因为它是基于<a>标签
- jQuery(. .).Plugin不是一个函数,因为js文件没有加载
- 使用转义函数会抛出js错误,因为文本中存在特殊字符
- JS代码不工作,因为不好的位置
- 需要js的基本循环来对两个字段求和,因为它们是多个组
- jQuery无法更改JS可以更改的值,因为库已过期
- 谁能帮我使搜索栏工作,因为我现在有JS提示
- 什么是运行在框架之上的框架?Node.js,因为它需要向初学者解释