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

标签 javascript backbone.js

出于某种原因,我需要使用一个变量作为 Backbone 事件的选择器,但我不知道该怎么做:

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

我必须使用不同的范围,但我不能执行“click .close”:“closeWindow”。

感谢您的帮助。

最佳答案

我查看了 Backbone.js 的源代码,发现如果您的 View 的 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
  }
});

THIS 是源码中比较有趣的部分:

if (_.isFunction(events)) events = events.call(this);

更新:

示例在 JSFiddle 上可用 HERE **

关于javascript - 在事件中为选择器使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8400450/

相关文章:

javascript - 如何检查 JavaScript 中是否定义了闭包?

javascript - django/backbone.js 中的 CSRF 验证失败

javascript - 'cache: false' 是否阻止缓存或对请求进行 UNIQUE-IFY 以绕过缓存?

javascript - Backbone.Model.extend() 与 X 类扩展 Backbone.Model 之间有什么区别?

javascript - 如何调用backbone中父模型的默认方法

backbone.js - Backbone.Model.destroy 在成功时不触发成功函数

javascript - 如何将位置对齐到 3 个部分,上 - 中和下?

javascript - 如何将时间戳附加到 <script> 标记 url 中的 javascript 文件以避免缓存

javascript - 从 ngstorage 绑定(bind)到下拉菜单

javascript - Javascript 的正则表达式