我是 jquery 插件创作的新手,想知道插件中的方法如何在同一个插件中调用另一个方法。
在示例代码中,我尝试从 f1 调用 f2,但由于 f2 方法中的 this.each() 出现 js 错误。
你能启发我吗?
谢谢
编辑:可以从插件 $.pluginName('f1') 和 $.pluginName('f2') 外部调用 f1() 和 f2()。
我想要的是在 f1() 中的某些代码之后调用 f2()。
;
(function( $ ){
'use strict';
var pluginName = 'pluginName';
var defaults = {
};
var methods = {
init : function( options ) {
return this.each(function ( ) {
var $this = $(this);
var settings = $.extend({}, defaults, options);
$this.data(pluginName, settings);
return $this;
});
},
f1 : function() {
methods.f2(); // Uncaught TypeError: Object #<Object> has no method 'each'
},
f2 : function() {
return this.each(function() {
});
}
};
$.fn[pluginName] = 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.' + pluginName + '()');
}
};
})( jQuery );