А вот это похоже дело! Спасибо. Правда, небольшая загвоздка в том, что имея 10 инстансов виджета на одной странице, я должен для них сгенерить уникальные неймспейсы. А они друг про друга ничего не знают. И дестрой одного из них, не должен вызвать отвязывание обработчиков событий (например, клик на body) у других.
@PaulJE, не понял. $().unbind() первым аргументом ждёт тип события - почему ".PLUGIN_NAME"? Имя плагина вообще никак не может фигурировать в качестве селектора...
$this - это что?
console.log(new MyObj + ""); // [object MyObj]
Это не совсем то же самое, что console.log(new MyObj).
Добавив пустую строку к new MyObj мы запросили строковое преобразование и объект отдал toString()
Но что тогда запрашивает console.log()?
Хм..
Спасибо.
Хм, если я далее делаю так:
var obj = new MyObj();
то
obj.toString() вернёт, разумеется, эту строку, да.
Но, console.log(obj) выводит в фоксе всё равно [object Object]
В случае же с window:
window.toString() = console.log(window) = [object Window]
@MAXH0, суть в том, что для каждого обработчика создаётся замыкание, которое хранит i.
Уверяю, скорее всего более короткий способ от @iiil подойдет.
Просто посмотрите вот этот пример, чтобы избежать ошибки: jsfiddle.net/kityan/Z86at
Мы же не в курсе точно - есть ли еще у вас кнопки или нет.
Небольшая проблема может быть связана с тем, что при добавлении кнопок индексы начнут смещаться. Если не нужно фиксировать индексы - применимо. Если нужно - тогда можно воспользоваться .data() и установить для кнопок данные, к которым обращаться в click-обработчике.