如果我有一个使用正常标准的jQuery插件:
(function( $ ){
var methods = {
init : function( options ) {
var defaults = {
}
var options = $.extend(defaults, options);
return this.each(function(){
var returnValue = myUniversalFunction();
});
},
test : function( options ) {
var defaults = {
}
var options = $.extend(defaults, options);
return this.each(function(){
var returnValue = myUniversalFunction();
});
}
};
$.fn.jPlugin = 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.tooltip' );
}
};
})( jQuery );
我在哪里放置一个可以在init和test方法中访问的函数,但是不能让它在插件本身之外可用?
答案 0 :(得分:5)
将它放在第2行,就在(function( $ ){
之后,就像这样:
(function( $ ){
var inner_function = function() {
// ...
};
var methods = {
// ...
};
$.fn.jPlugin = function( method ) {
// ...
};
})( jQuery );
函数inner_function
将在(function($){ ... })(jQuery);
内的任何位置提供,但不在其外。
答案 1 :(得分:0)
在顶部。该功能将适用于该范围内的所有内容。
(function( $ ){
function myFunc() {
// ...
}