1

是否可以在视图内的 body 元素上绑定事件?

例如这不起作用

Backbone.View.extend({
  el : "#some element here",
  events : {
    "mouseup body" : "onMouseUp"
  }
});

提前致谢

4

2 回答 2

1

我认为是不可能的。

Backbone.View.events在内部使用this.$el.delegate,它在内部使用看起来不支持向上选择的CSS 选择器

您可以改为将position: absolutediv 添加到您的elDOM 元素中,并使其透明并全屏显示。然后从那里捕获事件。

于 2012-04-19T09:37:19.260 回答
1

好吧,我想我找到了一个可行的解决方案!

在我做的初始化函数中

$('body').bind('mouseup', this.onMouseUp);

它就像魅力一样!:)

编辑

其实这是一个很大的问题!this 绑定在主体上而不是视图上。所以我有一个参数“pressed”,当我用 this.pressed 访问它时,它会尝试在正文中找到它......

编辑

我发现上述问题的解决方案是在绑定参数中传递对此的引用,例如:

$('body').bind('mouseup',{thisView : this}, this.onMouseUp);

现在它就像魅力一样工作:P

于 2012-04-19T10:01:26.177 回答