Bir jQuery eklentisi yaptım ve çok iyi çalışıyor. Bunun dışında, aynı sayfada birden fazla örneğim olduğunda, sonuncu seçenekler/ayarlar her ikisi için de kullanılır.Varsayılan ve farklı örneklerle jquery ayarları
İşte bir soyulmuş versiyonu ... uzunluğu için üzgünüm.
(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);
Eminim ki, sık sık kafam karıştığı için bir çeşit ad alanı sorunu olduğuna eminim.
Teşekkür
Teşekkür, ancak sorunu kaçırdığınızı düşünüyorum. Sorun, ayar değişkenini değiştirdiğim şekilde değil. Bunu, eğer 'this.each (function() {})' i döndürdüğümde, o zaman bu bölüm show ve hide fonksiyonu için erişilebilir değildir. Ama eğer bunu dışarı çıkarırsam, yaptığım gibi eklenti üzerinde etkin olan her eleman için aynıdır. – ianbarker
Demoyu kontrol edin, ihtiyacınız olanı yapmalı. – roberkules
Veri() kullanmayı denemek ve kullanmaktan kaçınmak istemiştim ama sanırım tek yol bu. – ianbarker