13

私は落下イベントのハッシュを持っています -

events:
  'click #someButton : 'someFunction'

私が試したビューを閉じるには

close:
  $("#someButton").unbind("click")

   `close:

       $("#someButton").remove()`

しかし、 someFunction はまだ複数回起動されています。このイベントをボタンからバインド解除するにはどうすればよいですか?

私も試してみました

$(@el).find("#someButton").unbind("click") as well 
4

3 に答える 3

29

Backbone.js ビュー イベントはビューのイベントに委任されますel(そのため、要素にバインドされたイベントはありません#someButtonが、クリック イベントが発生すると、elそのセレクターに一致する要素からイベントが発生したかどうかがチェックされます)。イベントを削除するにはel、たとえば、から削除する必要があります

  $(this.el).off('click', '#someButton');

委任されたすべてのイベントを削除したい場合は、ビューのundegateメソッドを使用できます

于 2012-09-10T21:19:35.633 に答える
0

さらに追加するためにthis.$el.off();、サブビュー内の初期化内で使用して、サブビューに関連付けられたすべてのイベントを破棄しました。同じイベントが、データ更新が呼び出された X 回発生します。

次を使用して複製されたターゲットを見ました:

var $target = $(e.currentTarget);
console.log($target);

回答にコメントを追加しますが、評判が悪いです。

于 2016-02-25T17:38:32.230 に答える