我正在编写我的第一个jQuery插件,我希望能够这样做:
var myPluginVar = $("someElement").myPlugin();
myPluginVar.customFunctionCallWithinPlugin();
知道如何去做吗?
修改
答案 0 :(得分:1)
您可以使用类似于以下内容的方式实现此设计。我已将插件定义包装在匿名函数中,以防止PluginObj
污染全局命名空间。
(function($) {
function PluginObj() {
// construct stuff
}
PluginObj.prototype.customFunctionCallWithinPlugin = function() {
// do stuff
};
$.fn.myPlugin = function() {
return new PluginObj();
};
})(jQuery);
jQuery方法使用您定义的方法返回一个新对象。这是一个jQuery插件的非标准设计,所以如果你打算分发它,请确保它是完整的文档。
答案 1 :(得分:1)
您可能必须返回插件的实例而不是“this”。
e.g。
(function(){
// private constructor that is only accessable by your plugin.
function _Plugin(elements, args){
// do stuff
}
_Plugin.prototype.customFunctionCallWithinPlugin = function(){
// do more stuff
};
$.fn.Plugin = function(args){
return new _Plugin(this, args);
};
})();
编辑:亚历克斯打败了我。