Скажем, у вас есть плагин, который присоединяет событие прокрутки к окну и сравнивает позицию прокрутки с смещением элемента (этого). Естественно, вам нужно было бы отвязать это событие, когда оно не понадобилось.
Я хотел бы сделать что-то похожее на:
unbind("scroll.uniqueNamespace")
Но если вы используете плагин более чем на одном элементе, он отключит все события прокрутки с помощью "scroll.uniqueNamespace", когда мне понадобится его удалить только для одного элемента.
Я рассматриваю возможность хранения массива/объекта элементов и пространства имен для каждого элемента уникально, но это просто кажется беспорядочным.
Чтобы развязать конкретный прослушиватель, jQuery принимает второй параметр в .unbind
.unbind( eventType [, handler(eventObject) ] )
Таким образом, вы можете хранить функцию прослушивателя в своем массиве элементов, а когда вы отвязываете, передайте этот прослушиватель методу unbind. Что-то вроде:
unbind("scroll.uniqueNamespace", els[el].listener)
Кроме того, повторяя свой комментарий к вашему вопросу, вы также можете добавить только одного слушателя и выполнить проверку только для активных элементов внутри этого прослушивателя.
Источник: http://api.jquery.com/unbind/