DeLaVega
@DeLaVega
Верстаю, фронтэндю =)

Как правильно делать опции при написании плагина?

Здравствуйте. Пишу плагин калькулятора. Если калькулятор один - то проблем вообще никаких нету, а вот если несколько, то начинаются конфликты.

(function($, global) {
	$.fn.mortgageCalc = function(options) {
		return this.each(function(index, item){
				defaults = {
					flatPriceSlider 		: 	$('.apartment_price-slider', item),

То есть так - оно работает, только проблема в том, что пользователи не должны писать ", item)". Отсюда и вопрос, как обращаться к элементам, в рамках класса вызова которого они находятся.

Есть конечно вариант, в каждом месте где они находятся предварительно писать
this.children(defaults.flatPriceSlider).someFunc();

но кажется это неправильный вариант.
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
Почему бы вам не использовать jquery boilerplate? Это грамотная заготовка для создания плагина, с опциями и цепочкой (заодно сможете на основе кода разобраться в основных принципах). А вообще, не вижу проблемы - в философии jquery вы всегда будете работать с переданным в плагин элементом (например, через цепочку - главную фишку jquery), и следовательно, используя замыкание, для каждого элемента на странице будет создан собственный объект выполнения со своей областью видимости.

P.S. Также рекомендую при создании событий использовать пространство имен.

P.P.S. Вы (судя по коду) всегда обращаетесь к определенному классу (т.е. заново ищете элемент на странице), а надо обращаться к переданному в функцию объекту. Это исключит конфликты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы