如果我存儲視圖window.myView
變量,渲染它,然後在JavaScript控制檯呼叫:爲什麼關於替換html的Backbone事件不起作用?
$('#container').html('')
,然後調用:
$('#container').html(window.myView.$el)
綁定事件將停止工作。
我敢肯定,應該是這樣,但:
- 到底爲什麼是這樣工作的?
- 如何重新呈現無視事件綁定的視圖子部分?
- 爲什麼打電話
myView.render()
不會失去事件綁定?
更新:
找到this文章。這是原因嗎?
確保jQuery是不卸載你的事件,當你不希望它
如果你是,你動態創建的意見和附加/刪除它們的DOM建立一個應用程序,你可能有問題。每次從dom中刪除視圖,jQuery都會卸載所有事件。所以你不能引用一個視圖並將其從dom中刪除,然後再重新添加它。您的所有活動都將被卸載。如果你想保留觀點,更好的辦法是用display:none來隱藏它們。但是,你不應該濫用這個並回收一段時間內你不會使用的視圖(並防止內存泄漏)。
感謝您提出這個問題。我和Spine有類似的問題,根本無法弄清楚究竟發生了什麼。 – 2013-03-28 20:16:38