1

ビュー内の body 要素にイベントをバインドすることは可能ですか?

たとえば、これは機能しません

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

前もって感謝します

4

2 に答える 2

1

まあ、私は実用的な解決策を見つけたと思います!

初期化関数で私はします

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

そしてそれは魅力のように機能します!:)

編集

実はそれには大きな問題があります!これは、ビューではなくボディにバインドされます。だから私は「押された」パラメータを持っていて、this.pressedでそれにアクセスすると、それは体の中でそれを見つけようとします...。

編集

上記の問題に対して私が見つけた解決策は、バインドパラメータに次のような参照を渡すことです。

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

そして今、それは魅力のように機能します:P

于 2012-04-19T10:01:26.177 に答える
1

ありえないと思います。

Backbone.View.eventsは内部でthis.$el.delegateを使用します。これは内部でCSS セレクターを使用しますが、これは上向きの選択をサポートしていないように見えます。

代わりに、 DOM 要素にposition: absolutediv を追加して、透明にしてフルスクリーンにすることができます。elそして、そこからイベントをキャプチャします。

于 2012-04-19T09:37:19.260 に答える