如果我存储视图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