我正在为我的Application使用backbone and Marionette
。我想创建自己的事件,如If div
innerHTML清除事件应该触发。
html代码:
<div id="firstDiv"></div>
当div清除时,我想取消绑定视图事件。在我的应用程序中,我们有Main按钮进入主页面。这个按钮在每个屏幕都很常见,所以我为这个按钮写了一个代码,一旦使用点击这个按钮div清除并且主页面将被渲染,问题仍然是之前的视图事件正在侦听。所以我如何清除以前的View事件。
任何人都可以帮助我。
感谢。
答案 0 :(得分:1)
据我所知,你不能真的那么做。您可以收听由浏览器(点击,聚焦等)触发的事件,还可以在Backbone / Marionette实例上收听或触发事件。
您要做的是触发特定DOM更改的事件,这是您无法做到的。相反,当您清除该div时,您应该自己触发一个事件并让您的代码监听该事件。
答案 1 :(得分:0)
说你应该考虑如何在视图逻辑中捕获它,而不是听DOM更改是正确的。
那就是说,如果你认为听DOM是最好的方法,那么这可能是Mutation Observer的一个很好的用例。解释如何略微超越,但MDN Dev page
上有很多好的信息答案 2 :(得分:0)
如果您使用的是Marionette,则不必担心以前的观看事件。它会自动处理垃圾收集并取消绑定以前的事件。你必须以这样一种风格制作应用程序,当你在一个区域中渲染一个视图时,它会将事件绑定到那个,当你点击“Main”按钮时,你应该处理路径以获得新的View / stored View到在同一地区展示。因此旧视图将自动删除,事件也将被删除。木偶是最好的部分。
如果你有使用jQuery的自定义事件我建议
Use Marionette View's events
OR
Use $(element).off("event").on("event", function(){});