Ich habe ein Backbone-System, das aus verschachtelten Unteransichten besteht, in denen ich gelegentlich folgendes tun muss:
Ich mache das, indem ich etwas wie $(parent.el).html(...)
und dann $(parent.el).append(child.el)
Was ich bei dieser Technik immer gesehen habe, ist, dass die Ereignisbehandlungsroutinen des Kindes verloren gegangen sind. Also habe ich eine Reihe von Dingen ausprobiert, von denen bisher noch keiner funktioniert hat.
$.detach()
Das Einzige, was mir hilft, ist, die Kindansicht komplett neu aufzubauen. Hat jemand irgendwelche Ideen? Das erneute Anfügen des vorhandenen Knotens wäre viel effizienter.
Danke!
Ich hatte gerade ein ähnliches Problem. Dies schien für mich zu funktionieren:
%Vor%Ich bin mir immer noch nicht ganz sicher, warum die Event-Listener verschwinden, obwohl ich bestätigen kann, dass sie tatsächlich verschwunden sind, wenn ich im Chrome-Entwicklerwerkzeugfenster nachschaue. Es ist seltsam, weil Roatin Marth ein Beispiel hat ( Ссылка ) wo dieses Problem nicht auftritt.
Was du versuchst zu tun, scheint Backbone hack-ish zu sein. Sie sollten die native Funktionalität besser nutzen, indem Sie die Ereignisdelegierung und das Rendern von Ansichten einrichten, anstatt sie zu lösen, zu klonen, zu ändern oder neu anzuhängen. Sie erhalten keine Leistungssteigerung, wenn Sie es tun.
Es wäre viel einfacher zu helfen, wenn Sie erklären würden, warum Sie es so machen müssen und warum die native Backbone-Methode nicht für Sie funktioniert.
Tags und Links javascript dom backbone.js