5
我做了一個jQuery插件,它的工作非常好。除了當我在同一頁面上有多個實例時,最後一個實例的選項/設置用於兩者。默認和多個實例的jquery設置
這是一個精簡版...它的長度很抱歉。
(function() {
var settings = {};
var defaults = {
duration : 1000,
easingShow : 'easeOutBounce',
easingHide : 'easeOutQuad'
};
var methods = {
init : function(options) {
return this.each(function(n) {
settings = $.extend(defaults, options);
});
},
show : function() {
// settings used here
},
hide : function() {
// also used here
}
};
$.fn.expander = 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.expander');
}
};
})(jQuery);
我敢肯定,這是某種名稱空間問題,因爲我經常會感到困惑。
由於
謝謝,但我想你已經錯過了問題。問題不在於我設置設置變量的方式。這是,如果我把它設置在'return this.each(function(){});'部分,那麼顯示和隱藏功能將無法訪問它。但是如果我將它設置在外面,就像我已經完成的那樣,每個啓用了插件的元素都是相同的。 – ianbarker 2011-05-31 08:14:26
檢查演示,應該做你需要的。 – roberkules 2011-05-31 10:56:06
我曾試圖避免使用數據(),但我認爲這是唯一的方法。 – ianbarker 2011-05-31 14:12:09