0
我开始制作插件,而且我在插件内的变量范围上遇到了问题。我希望能够从插件中的任何地方访问我的选项,但不知道如何,var $ opts仅对该函数可见,并且我的公共函数无法访问它。有谁知道我会怎么做?
在此先感谢,哦,如果有人注意到在我做插件不要犹豫,何况他们的方式任何错误:d如何让我的插件选项可用于所有插件?
//@@@@ Start of myViewport Plugin @@@@\\
(function($) {
$.fn.myViewport = function(options) {
var $opts = $.extend({}, $.fn.myViewport.defaults, options);
//Plugin Here
return this.each(function() {
alert('Initialising Plugin!' + $opts.privateText + $opts.publicText);
myPrivateFunction();
});
};
// private functions
function myPrivateFunction($opts) {
alert($opts.privateText);
};
// public functions
$.fn.myViewport.myPublicFunction = function() {
alert($opts.publicText);
};
// plugin defaults
$.fn.myViewport.defaults = {
privateText: 'This is a text from the privateText defaults',
publicText: 'This is a text from the publicText defaults'
};
})(jQuery);
//@@@@ End of myViewport Plugin @@@@\\
非常感谢,你能解释一下我不明白你改变了什么,什么是我的var o = $ .extend(vp,$ .fn.myViewport.defaults,options);因为我可以使用vp。对? – Thaiscorpion
如果我打电话给这样的插件: $(document).myViewport({privateText:'New Text' });然后它不使用这个新文本。 – Thaiscorpion
'var o'是'$ .fn.myViewport'函数中的选项,'vp'则是您不必每次都使用'$ .fn.myViewport'。工程确定对我来说:http://jsfiddle.net/NzBAe/2/ – Sparkup