[英]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.