Tworzę aplikację w Backbone.js, która ma widoki nadrzędne i wiele podrzędnych. Widoki podrzędne zawierają odsyłacze, których słuchają i wykonują funkcję.Dlaczego zdarzenia nie są uruchamiane po drugim renderowaniu w Backbone.js?
Element nadrzędny przechowuje listę wszystkich widoków podrzędnych. W funkcji renderowania, po to się robi obliczeniowej własny html, to wykonuje następujące operacje:
$(this.el).html(html);
for (var i = 0; i < this.views.length; i++){
$('.children', this.el).append(this.views[i].render().el);
}
Odpowiedź: Problemem było to, że było stworzenie odnośnik podczas renderowania. To znaczy. na pierwszym renderowaniu (który został wywołany z init) zdarzenie powiodło się z linkiem. Ponieważ jednak wszystkie następne wywołania renderowania odtwarzają cały element, nowy odsyłacz nie ma powiązania z nim. Zostało to rozwiązane poprzez rozwiązanie @Tom Tu dodawania this.delegateEvents()
do renderowania
dodaje nieco więcej szczegółów, nadzieję, że pomoże –
że jest naprawdę dobra myśl, ale dodałem usuń kod powyżej. Również zdarzenia nie mogą być ustawione źle, lub nie byłoby ognia w pierwszej kolejności. – chacham15