这是我的插件
(function($){
$.fn.myPlugin = function(options){
var defaults = {
width: 800
};
var defaults = $.extend(defaults, options);
var self = this;
function init(obj){
/*Initialize object*/
self.myPlugin.doAnimation(600,400);
}
$.fn.myPlugin.doAnimation = function(lV, rV){
/*Doing some animation work*/
}
return this.each(function(options){
init(this);
});
}
})(jQuery);
我正在尝试这样
var t = $('#id1').myPlugin();
t.doAnimation(); //getting error here, t.doAnimation is not a function
答案 0 :(得分:1)
你做不到。你没有退回插件。你将使用匹配的元素返回jQuery对象(就像你应该的那样)。无论如何,testing
函数对myPlugin
函数是私有的。
要针对jQuery对象调用方法,您需要像对myPlugin()
一样扩展jQuery,如:
function($){
$.fn.myPlugin = function(options) {
...
}
$.fn.testing = function(options) {
...
}
})(jQuery);
当然,这与原始插件完全分开。
我不知道你的插件是做什么的,但如果你需要在每个元素的基础上在插件之间共享一些数据,你可以使用jQuery的.data()
方法。