我正在尝试获取jquery插件的对象我正在使用。我希望最终能够为插件添加功能以满足我的需求。我目前在调用插件中定义的函数时遇到问题。这是我所拥有的代码的骨架:
;(function($) {
$.fn.myPlugin = function(o) {
.//Implementations here
.
.
var Ex = function(e){
//implementations here
};
};
})(jQuery);
我想要这个函数的原因是因为我想访问定义的一些变量。我希望能够从我的html文件中调用函数Ex,但到目前为止我尝试过的任何函数都没有用。我尝试过的一个例子是:
$.fn.myPlugin.Ex("x");
任何地方都没有退货声明。我在javascript或jquery上并不擅长,但我正在努力学习。感谢你解释我做错的任何帮助。
答案 0 :(得分:1)
您的插件设计模式错误。
为了达到你想要的效果,你可以使用这个常见的:
;(function($){
var methods = {
init: function() {
//stuff
},
function1: function() {
//stuff
},
function2: function(opt) {
//stuff
}
};
$.fn.myPlugin= function(method) {
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments,1));
} else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
}
};
})(jQuery);
有了这个结构:
$.fn.myPlugin();
会致电init()
$.fn.myPlugin("function1");
会致电function1()
$.fn.myPlugin("function2",option_exemple);
会致电function2(opt)
免责声明:我经常使用它,但它不是我的。不记得我找到它的地方*。