Tôi đang tạo một ứng dụng trong Backbone.js có một chế độ xem cha và nhiều con. Các khung nhìn con chứa các liên kết mà chúng lắng nghe và thực hiện một hàm.Tại sao các sự kiện không kích hoạt sau lần hiển thị thứ hai trong Backbone.js?
Cha mẹ lưu trữ danh sách tất cả các chế độ xem của trẻ em. Trong hàm kết xuất, sau khi hoàn thành việc tính toán html của chính nó, nó thực hiện như sau:
$(this.el).html(html);
for (var i = 0; i < this.views.length; i++){
$('.children', this.el).append(this.views[i].render().el);
}
TRẢ LỜI: Vấn đề là tôi đã tạo liên kết trong khi kết xuất. I E. trên render đầu tiên (được gọi từ init) sự kiện này đã được liên kết thành công với liên kết. Tuy nhiên, vì tất cả các cuộc gọi render sau đây tạo lại toàn bộ phần tử, liên kết mới không có trình xử lý được liên kết với nó. Điều này đã được giải quyết thông qua giải pháp @ Tom Tu thêm this.delegateEvents()
để render
thêm hơn một chút chi tiết, hy vọng nó sẽ giúp –
đó là một ý nghĩ thực sự tốt, nhưng tôi đã thêm phương thức remove mã trên. Ngoài ra, các sự kiện không thể được đặt sai, hoặc nó sẽ không cháy ở nơi đầu tiên. – chacham15