Javascript 找不到自定义jQuery插件
我在myPlugin.js中开发了一个jQuery插件,如下所示:Javascript 找不到自定义jQuery插件,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我在myPlugin.js中开发了一个jQuery插件,如下所示: (function ($) { $.fn.myPlugin = function (options) { var defaults = {}; var settings = $.extend(defaults, options); return this.each(function () { this.sayHello = function (
(function ($) {
$.fn.myPlugin = function (options) {
var defaults = {};
var settings = $.extend(defaults, options);
return this.each(function () {
this.sayHello = function () {
alert('Hello!');
};
});
};
})(jQuery);
myPlugin.sayHello();
我正在从另一个文件call.js调用sayHello()
方法,如下所示:
(function ($) {
$.fn.myPlugin = function (options) {
var defaults = {};
var settings = $.extend(defaults, options);
return this.each(function () {
this.sayHello = function () {
alert('Hello!');
};
});
};
})(jQuery);
myPlugin.sayHello();
myPlugin.js和call.js都包含在我的HTML文件中。当编译器到达行myPlugin.sayHello()时代码>它报告一个错误未捕获引用错误:未定义myPlugin
我的代码有什么问题
更新
我找到了解决办法。在我的代码中,有一个地方初始化了一个特定元素上的插件,例如,$(“#someElement”).myPlugin()代码>。我只需要用someElement.sayHello()调用一个插件函数代码>,这就行了
另一种解决方案是@antyrat建议的。
(函数($){
$.fn.myPlugin=函数(选项){
var默认值={};
var设置=$.extend(默认值、选项);
返回此。每个(函数(){
this.sayHello=函数(){
警惕(“你好!”);
};
});
};
})(jQuery);
$('body').myPlugin();
console.log($('body'))
$('body')[0].sayHello()代码>
(函数($){
$.fn.myPlugin=函数(选项){
var默认值={};
var设置=$.extend(默认值、选项);
返回此。每个(函数(){
this.sayHello=函数(){
警惕(“你好!”);
};
});
};
})(jQuery);
$('body').myPlugin();
console.log($('body'))
$('body')[0].sayHello()代码>
(函数($){
$.fn.myPlugin=函数(选项){
var默认值={};
var设置=$.extend(默认值、选项);
返回此。每个(函数(){
this.sayHello=函数(){
警惕(“你好!”);
};
});
};
})(jQuery);
$('body').myPlugin();
console.log($('body'))
$('body')[0].sayHello()代码>
(函数($){
$.fn.myPlugin=函数(选项){
var默认值={};
var设置=$.extend(默认值、选项);
返回此。每个(函数(){
this.sayHello=函数(){
警惕(“你好!”);
};
});
};
})(jQuery);
$('body').myPlugin();
console.log($('body'))
$('body')[0].sayHello()代码>
不幸的是,它不起作用。它显示了一个错误Uncaught TypeError:无法读取未定义的
@kiriz的属性“sayHello”
@kiriz您尝试在某些元素上调用它了吗<代码>$('body').myPlugin.sayHello()代码>我做了,它说未捕获类型错误:未定义不是函数
。$('body').myPlugin().sayHello()也有同样的错误代码>。感谢您的努力,但这次代码是$('body').myPlugin()代码>造成了一片混乱——在jquery文件中报告的第二秒内产生了大约100个错误。必须通过任务终止我的浏览器manager@kiriz你试过运行我的代码片段吗?它对我很有效。或者你的代码不同。你能做一个JSFIDLE演示什么的吗?不幸的是,它不起作用。它显示了一个错误Uncaught TypeError:无法读取未定义的
@kiriz的属性“sayHello”
@kiriz您尝试在某些元素上调用它了吗<代码>$('body').myPlugin.sayHello()代码>我做了,它说未捕获类型错误:未定义不是函数
。$('body').myPlugin().sayHello()也有同样的错误代码>。感谢您的努力,但这次代码是$('body').myPlugin()代码>造成了一片混乱——在jquery文件中报告的第二秒内产生了大约100个错误。必须通过任务终止我的浏览器manager@kiriz你试过运行我的代码片段吗?它对我很有效。或者你的代码不同。你能做一个JSFIDLE演示什么的吗?不幸的是,它不起作用。它显示了一个错误Uncaught TypeError:无法读取未定义的
@kiriz的属性“sayHello”
@kiriz您尝试在某些元素上调用它了吗<代码>$('body').myPlugin.sayHello()代码>我做了,它说未捕获类型错误:未定义不是函数
。$('body').myPlugin().sayHello()也有同样的错误代码>。感谢您的努力,但这次代码是$('body').myPlugin()代码>造成了一片混乱——在jquery文件中报告的第二秒内产生了大约100个错误。必须通过任务终止我的浏览器manager@kiriz你试过运行我的代码片段吗?它对我很有效。或者你的代码不同。你能做一个JSFIDLE演示什么的吗?不幸的是,它不起作用。它显示了一个错误Uncaught TypeError:无法读取未定义的
@kiriz的属性“sayHello”
@kiriz您尝试在某些元素上调用它了吗<代码>$('body').myPlugin.sayHello()代码>我做了,它说未捕获类型错误:未定义不是函数
。$('body').myPlugin().sayHello()也有同样的错误代码>。感谢您的努力,但这次代码是$('body').myPlugin()代码>造成了一片混乱——在jquery文件中报告的第二秒内产生了大约100个错误。必须通过任务终止我的浏览器manager@kiriz你试过运行我的代码片段吗?它对我很有效。或者你的代码不同。你能做一个JSIDLE演示或者什么吗?为什么我会被否决?为什么我会被否决?为什么我会被否决?为什么我会被否决?为什么我会被否决?