找不到自定义jQuery插件
Unable to find custom jQuery plugin
我在myPlugin.js中开发了一个jQuery插件,如下所示:
(function ($) {
$.fn.myPlugin = function (options) {
var defaults = {};
var settings = $.extend(defaults, options);
return this.each(function () {
this.sayHello = function () {
alert('Hello!');
};
});
};
})(jQuery);
我从另一个文件call.js调用sayHello()
方法,如下所示:
myPlugin.sayHello();
myPlugin.js和call.js都包含在我的HTML文件中。当编译器到达行myPlugin.sayHello();
时,它报告一个错误Uncaught ReferenceError: myPlugin is not defined
。
我的代码有什么问题?
更新
我找到了一个解决方案。我在一个地方的代码中初始化了一个特定元素上的插件,例如$('#someElement').myPlugin();
。我只需要用someElement.sayHello();
调用一个插件函数就可以了。
另一个解决方案是@antyrat建议的。
(function ($) {
$.fn.myPlugin = function (options) {
var defaults = {};
var settings = $.extend(defaults, options);
return this.each(function () {
this.sayHello = function () {
alert('Hello!');
};
});
};
})(jQuery);
$( 'body' ).myPlugin();
console.log($( 'body' ))
$( 'body' )[0].sayHello();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您已经使用fn
快捷方式(prototype
)扩展了jQuery对象。因此,您需要将插件调用为jQuery方法:
$.myPlugin.sayHello();
更新
根据我从您的代码中看到的,如果您想调用sayHello
函数,您需要在一些元素上初始化它,例如:
$( 'body' ).myPlugin();
然后调用您的方法:
$( 'body' )[0].sayHello();
因为this.sayHello = function () {
,我们需要[0]
引用DOM元素,而不是jQuery
相关文章:
- 如何在Angular2中使用jQuery插件
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 水平视差滚动从头开始-没有插件(jQuery)
- 什么是最好的表单元素样式库/插件(jQuery)
- 如何在Bootstrap Modal上使用Vue.js渲染插件jQuery(作为工具提示和Switchery)
- 屏蔽输入插件 jquery
- 多选插件 jquery 不适用于 javascript
- 使用验证器插件 Jquery 验证动态输入表单元素
- 如何从网格数据表插件 jQuery 中清除数据
- 插件Jquery Validation的错误消息显示不正确
- Livestamp插件Jquery-如何显示时间
- Youtube跟踪JQuery插件JQuery .tubeplayer.js
- 创建句柄特性的拖放插件- jquery
- 如何使用表排序插件- jquery搜索表中的项
- Ajax文件上传进度没有任何插件Jquery
- 航路点插件Jquery
- 在数据表插件jQuery中设置分页长度
- 如何在OpenUI5/SAPUI5中使用jQuery插件(jQuery验证引擎)
- 时钟插件 jQuery
- jQuery插件'jQuery .shuffle.js'执行排序