簡體   English   中英

取消綁定骨干網視圖事件

[英]Unbind Backbone View Events

我有下降事件哈希-

events:
  'click #someButton : 'someFunction'

關閉我嘗試過的視圖

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

   `close:

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

但是someFunction仍然被多次觸發。 如何從按鈕取消綁定此事件?

我也嘗試過

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

Backbone.js視圖事件被委托給視圖的el (因此,沒有事件綁定到#someButton元素,而是當click事件冒泡到el它會檢查該事件是否來自與該選擇器匹配的元素),例如,要刪除該事件,您需要將其從el刪除,例如

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

如果要刪除所有委托事件,則可以使用視圖的undelegate方法

傑克的解釋和回答很棒。 不幸的是,他的代碼示例對我不起作用。 而不是使用:

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

我不得不使用:

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

這對我來說很有意義,因為該事件已綁定到this.$el對象。

為了進一步說明,我使用了this.$el.off(); 在子視圖中的初始化內部,以銷毀與該子視圖相關的所有事件。 相同事件將觸發X次調用數據刷新的次數。

我看到重復的目標使用:

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

我會在答案中添加評論,但我的聲譽不高。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM