在事件中为选择器使用变量

Fly*_*ver 4 javascript backbone.js

由于某种原因,我需要使用一个变量作为骨干事件的选择器,但我无法想象如何做到这一点:

app.views.Selfcare = Backbone.View.extend({
    events: {
        click window.parent.document .close : "closeWindow"
    },
    closeWindow: function() {
        //code
    }
});
Run Code Online (Sandbox Code Playgroud)

我必须使用不同的范围,我不能做"click .close":"closeWindow".

谢谢你的帮助.

kub*_*etz 7

我查看了Backbone.js的源代码,发现如果你的视图events是一个函数,那么函数被调用,它的返回值被用作events对象.

这意味着您的代码可以像这样更改:

app.views.Selfcare = Backbone.View.extend({
  events: function() {
    var _events = {
      // all "standard" events can be here if you like
    }
    _events["events" + "with variables"] = "closeWindow";
    return _events;

  },
  closeWindow: function() {
    //code
  }
});
Run Code Online (Sandbox Code Playgroud)

是源代码中有趣的部分:

if (_.isFunction(events)) events = events.call(this);
Run Code Online (Sandbox Code Playgroud)

更新:

JSFiddle HERE上提供了示例**