Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.06.2014, 17:22
Аспирант
Отправить личное сообщение для xmlns Посмотреть профиль Найти все сообщения от xmlns
 
Регистрация: 30.07.2013
Сообщений: 47

События в плагине
Добрый день.
Сделал небольшой плагин, структура которого такова:
(function($)
{
    function rating(element, options)
    {
         this.element = $(element);
         var self = this;
         ....
         this.stars.click(function()
         {
             //Тут обрабатываем клик
             self.element.append(trololo);
             ....
         }
     }
     jQuery.fn.rating = function(options) { return this.each(function() { rating(this,options); }); };
})(jQuery);

Плагин замечательно навешивается на элементы, но при этом плохо работают события (в примере это click). Т.е. тыкаю я на какой-то элемент, и вместо того, чтобы событие произошло у тыкнутого элемента, оно происходит у самого последнего на странице. Я так понимаю, тут дело с безымянными функциями.
Как лечится?
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2014, 18:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

xmlns,
вы с this непереборщили?
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2014, 18:26
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

xmlns, у тебя this в rating на глобальный объект ссылается. js - не знай, плагины - пиши.
Ответить с цитированием
  #4 (permalink)  
Старый 21.06.2014, 18:47
Аспирант
Отправить личное сообщение для xmlns Посмотреть профиль Найти все сообщения от xmlns
 
Регистрация: 30.07.2013
Сообщений: 47

Делал по примеру того, что нашел в других плагинах.
И как тогда исправить надо?
Ответить с цитированием
  #5 (permalink)  
Старый 21.06.2014, 19:03
Аспирант
Отправить личное сообщение для xmlns Посмотреть профиль Найти все сообщения от xmlns
 
Регистрация: 30.07.2013
Сообщений: 47

jQuery.fn.rating = function(options) { return this.each(function() { new rating(this,options); }); };
Ответить с цитированием
  #6 (permalink)  
Старый 21.06.2014, 19:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

xmlns,
jQuery.fn.rating = function(options) { return this.each(function(indx, element) { rating(element,options); }); };
Ответить с цитированием
  #7 (permalink)  
Старый 21.06.2014, 20:21
Аспирант
Отправить личное сообщение для xmlns Посмотреть профиль Найти все сообщения от xmlns
 
Регистрация: 30.07.2013
Сообщений: 47

А мой вариант плох?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет события Click на дочернем элементе, кот. находится за рамками родителя Smokvin Events/DOM/Window 11 10.11.2013 01:53
Алгоритм работы обработчика события salikoff Events/DOM/Window 1 20.09.2012 23:46
Дебаг js, или как найти обработчик события для тега jimm88 Events/DOM/Window 1 18.04.2012 15:11
Передача параметров в колбэки и дальнейшее их вешанье на события. Gremlin Общие вопросы Javascript 17 13.08.2011 08:54
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47