在视图内部绑定body元素上的事件

时间:2012-04-19 09:25:48

标签: backbone.js

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

例如,这不起作用

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

提前致谢

2 个答案:

答案 0 :(得分:1)

我认为不可能。

Backbone.View.events内部使用this.$el.delegate,内部使用CSS selector doesn't support upwards selection

您可以在position: absolute DOM元素中添加el div,并使其透明并全屏显示。然后从那里捕获事件。

答案 1 :(得分:1)

嗯,我觉得我找到了一个有效的解决方案!

在初始化函数中我做

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

它就像魅力一样! :)

修改

实际上这有一个很大的问题!这是绑定在身体而不是视图上。所以我有一个参数“按下”,当我用this.pressed访问它时,它试图在体内找到它....

修改

我发现上述问题的解决方案是将绑定参数传递给它,如:

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

现在它就像魅力一样:P