Сегодня я узнал, что метод Backbone.View listenTo
предназначен для прослушивания событий trigger
- путем изменения моделей или коллекций Backbone. Он не предназначен для прослушивания событий DOM.Остановка прослушивания событий DOM в магистральной сети
В связи с этим возникает следующий вопрос. В базовом документе говорится, что при представлении Backbone remove
-ed он автоматически отпишет от всех событий, которые он прослушивал через listenTo
. В нем конкретно не упоминается судьба слушателей, что взгляд на элементы DOM.
Итак, что происходит, когда вид прослушивания событий DOM удаляется? И есть ли разница между двумя следующими сценариями?
вид имеет
events
объект, который содержит список событий на дочерние узлы функции представления$el
, которые слушают;вид прослушивается для некоторых произвольных элементов DOM, а не для детей вида
$el
. эта ситуация отличается от предыдущей?
Считают ли слушатели в режиме просмотра отмену подписки на события DOM при удалении вида или они должны быть отписаны вручную?
В первом сценарии , прослушиватели событий удаляются. Работа выполняется с помощью метода .remove() jQuery (https://api.jquery.com/remove/), к которому обращаются делегаты Backbone.View.prototype.remove. Во втором сценарии ваше представление должно явно вызывать .off() для произвольных элементов DOM. – 76484