События в плагине
Добрый день.
Сделал небольшой плагин, структура которого такова:
(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). Т.е. тыкаю я на какой-то элемент, и вместо того, чтобы событие произошло у тыкнутого элемента, оно происходит у самого последнего на странице. Я так понимаю, тут дело с безымянными функциями. Как лечится? |
xmlns,
вы с this непереборщили? |
xmlns, у тебя this в rating на глобальный объект ссылается. js - не знай, плагины - пиши.:D
|
Делал по примеру того, что нашел в других плагинах.
И как тогда исправить надо? |
jQuery.fn.rating = function(options) { return this.each(function() { new rating(this,options); }); };
|
xmlns,
jQuery.fn.rating = function(options) { return this.each(function(indx, element) { rating(element,options); }); };
|
А мой вариант плох?
|
| Часовой пояс GMT +3, время: 06:15. |