Javascript View:当我退出视图并再次输入它时,事件不起作用

Javascript View:当我退出视图并再次输入它时,事件不起作用,javascript,backbone.js,parse-platform,Javascript,Backbone.js,Parse Platform,我正在web应用程序项目中使用1.3.4版中的Parse JS <script src="//www.parsecdn.com/js/parse-1.3.4.min.js"></script> 我想把一个事件放在一个字体很棒的元素中,这个元素有一个类映射视图打开按钮。解析与主干在这方面有些不同 这就像这样运作: 重新加载页面 通过单击菜单转到视图 单击元素->my function app.driveView.openMapViewInModal runs ok 我可以

我正在web应用程序项目中使用1.3.4版中的Parse JS

<script src="//www.parsecdn.com/js/parse-1.3.4.min.js"></script>
我想把一个事件放在一个字体很棒的元素中,这个元素有一个类映射视图打开按钮。解析与主干在这方面有些不同

这就像这样运作:

重新加载页面 通过单击菜单转到视图 单击元素->my function app.driveView.openMapViewInModal runs ok 我可以打开模式运行功能几次,它的工作。 但是,如果我单击菜单并转到另一个视图,然后返回app.driveView,则事件将无法工作。如果单击元素,则不会调用函数app.driveView.openMapViewInModal

奇怪的是,事件仍然存在于视图中。我用app.drivesView.events检查了一下

我离开时是否需要关闭视图?如何关闭?然后再次渲染,以便重新创建事件

这就是我到目前为止所尝试的。我想我可以删除渲染函数上的事件,然后再次创建它。问题是渲染函数在第一次访问时只调用一次。如果我离开视图返回,渲染函数将不会被调用,这真的很奇怪,因为我的路由器指向这个函数,在这里显式调用渲染:

drivesViewer: function(){
    $('#app').html(this.driveView.render().el);
  },
有什么想法吗


谢谢

我终于找到了解决办法。这真的很奇怪,与我的期望相反,但我不是专家,所以我的期望不是真的有效

这就是我所做的。在查看器功能上,我删除视图:

drivesViewer: function(){
    this.drivesView.remove();
    $('#app').html(this.driveView.render().el);
  },
然后,在“DrivesView”声明中,我删除了“events”属性,并将以下几行放在“render”函数中:

this.undelegateEvents();
this.delegateEvents({"click i.map-view-open-button": "openMapViewInModal"})
现在,每次加载视图时,我都会删除视图,然后取消对环境的委派(不确定是否确实需要),然后设置新事件。它起作用了

注意:我认为主干和解析在这里是有区别的,我真的不知道为什么。如对此有任何评论和讨论,我们将不胜感激

this.undelegateEvents();
this.delegateEvents({"click i.map-view-open-button": "openMapViewInModal"})