如何在渲染新视图之前关闭所有事件

How turn off all events before new view rendering

本文关键字:事件 新视图      更新时间:2024-06-26

我有几个视图。在他们中的一些人中,我有类似的事件,比如

events: {
    'click #save': 'save'
}

当我创建并呈现新视图时,旧的事件侦听仍然是旧的算法,当我已经更改视图时,它仍然有效。

正如我所知,有一个stopListening()功能,但我如何才能为以前的所有视图激活。因此,当我更改视图/页面时,我希望禁用以前的所有事件。我该怎么做?

ID是全局的,每页不应该有一个以上。将事件附加到类中。

events: {
'click .save-btn': 'save'
}

此外,确保您在使用完视图后处理它们:

var MyView = Backbone.View.extend({
  events: {
   'click .save-btn': 'save'
  },
  ...
  dispose: function() {
    this.unbind();
    this.remove();
  }
};
var view = MyView();
...
view.dispose();

干杯。

尝试使用el

var MyView = Backbone.View.extend({
    el: '#wrapper_of_save_element',
    events: {
       'click #save': 'save'
    },
    save: function() {
        ...
    }
});

因此,您的事件仅在#wrapper_of_save_element(例如,wrapper-div)中

http://backbonejs.org/#View-el