0
Я пытаюсь разработать компонент jquery для модальных модалов, и я не знаю, как получить доступ к настройкам из всех функций компонента. Мне нужно получить доступ к settings.zIndex
из открытой функции и, похоже, не работает.Настройки доступа из всего компонента jquery
(function($) {
var methods = {
init: function(options) {
var defaults = {
bgClass: "fancy-dialog-bg",
bgShow: null,
zIndex: 100,
show: null
};
var settings = $.extend(defaults, options);
return this.each(function() {
var obj = $(this).hide().css("position", "fixed").css("z-index", settings.zIndex).css("left", "300px").css("top", "200px");
});
},
open: function() {
// alert(settings.zIndex); not working
var tes = $("<div></div>").css("backgroundColor", "#f00").css("position", "fixed").css("z-index", "99").css("width", "50%").css("height", "100%").css("left", "0").css("top", "0");
$('body').append(tes);
var obj = $(this);
obj.show();
},
close: function() {
var obj = $(this);
$("#fancy-dialog-bg-" + obj.attr('id')).remove();
obj.hide();
}
};
$.fn.fancyDialog = 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.');
}
};
})(jQuery);
hmm похоже не работает :( –
Да, это из-за того, как вы отправляете методы. Вы вызываете методы с 'this' как объект jQuery, а не объект' methods', где хранятся настройки. Итак, если вы не передаете объект 'methods' каким-либо образом, и там, где хранятся настройки, bingo вы не можете получить к ним доступ. Я должен запустить этот момент. Вам нужно будет изменить дизайн способов вызова методов или способов сохранения настроек. – jfriend00
хорошо я скопировал этот шаблон с jquery.com .. im все еще новичок в создании компонента :) вы случайно знаете хороший шаблон для создания компонентов, таких как тот, который я пытаюсь разработать? ty –