Мониторинг изменений в представлениях Backbone? - PullRequest
1 голос
/ 07 марта 2012

Скажем, у меня есть представление Backbone, и я регулярно заменяю содержимое el, как я буду повторно запускать действия, не связанные с событиями, для нового настроенного содержимого el?Например;скажем, я заменил содержимое и хочу, чтобы все ссылки использовали скрипт лайтбокса.Чтобы нормально прикрепить скрипт, вы должны сделать что-то подобное в рендере:

this.$el.find('a').box()

Но после замены контента его нужно будет запустить снова.Учитывая, что вы не обязательно знаете, когда заменяется содержимое el, как бы вы повторили это?Кажется, я не могу найти событие, которое могу делегировать для этого - готово, загрузить и изменить все звуки так, как они могли бы работать, но никто этого не делает.В идеале я хотел бы, чтобы что-то, что я мог бы добавить в хеш событий, чтобы вызвать метод, который запускает эти вещи после каждой замены.

Ответы [ 2 ]

1 голос
/ 07 марта 2012

вы можете сделать это при инициализации:

$(this.el).livequery(function() {
   // perform selector on $(this) to apply box
});

Бесстыдно украденный и слегка измененный из jquery live event для добавленных элементов dom

0 голосов
/ 07 марта 2012

Вы можете использовать агрегатор событий. Вы создаете событие в агрегаторе, которое связано с функцией, которая запускается при каждом изменении содержимого. Всякий раз, когда вы заменяете содержимое el, запускайте созданное вами событие. Взгляните на эту статью здесь для более подробного объяснения: Event Aggregator

...