清除DIV后如何触发事件

时间:2014-03-08 09:16:15

标签: javascript backbone.js marionette

我正在为我的Application使用backbone and Marionette。我想创建自己的事件,如If div innerHTML清除事件应该触发。

html代码:

<div id="firstDiv"></div>

当div清除时,我想取消绑定视图事件。在我的应用程序中,我们有Main按钮进入主页面。这个按钮在每个屏幕都很常见,所以我为这个按钮写了一个代码,一旦使用点击这个按钮div清除并且主页面将被渲染,问题仍然是之前的视图事件正在侦听。所以我如何清除以前的View事件。

任何人都可以帮助我。

感谢。

3 个答案:

答案 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(){});