如果我想在我正在制作的jQuery插件上有一个可公开访问的函数,这是正确的方法吗?
(function($) {
$.fn.myPlug = function(options) {
// Do this...
this.hello = function() {
return 1;
};
}
})(jQuery);
var foo = $("div").myPlug();
// then do this...
foo.hello();
答案 0 :(得分:1)
您应该构建插件,以便可以将方法名称作为参数传递给插件。这是jQuery plugin authoring guide:
推荐的(function($) {
var methods = {
init: function(options) {
},
hello: function () {
return 1;
}
};
$.fn.myPlug = 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);
} else {
$.error('Method ' + method + ' does not exist on jQuery.myPlug');
}
};
})(jQuery);
用法如下:
$("div").myPlug({ ... });
$("div").myPlug("hello"); // returns 1