2013-07-30 50 views
2

在一個對象的原型,我有

obj.prototype.function1 = function(){ 
    $(window).on("scroll",$.proxy(this.trigger,this)); 
} 

在另一個原型,我有

obj.prototype.function2 = function(){ 
    $(window).off("scroll",this.trigger); 
} 

$(window).off("scroll",this.trigger);不解除綁定this.trigger

因此,我試圖使$.proxy(this.trigger,this)obj財產function1

this.triggery = $.proxy(this.trigger,this); 

function2將其關閉:

$(window).off("scroll",this.triggery); 

但它仍然不能.off -ed;

我應該如何解除綁定像這樣的事件處理程序?

P.S. 我試過使用傳統的.bind.unbind,但無濟於事。

+1

第二種方法應該可行。你能舉出一個完整的例子嗎? – Bergi

+0

@Bergi謝謝!你是對的!我剛剛檢查過我的設計模型,發現它有什麼問題,但沒有綁定和解除綁定。 –

回答

0

問題解決了。綁定&解除綁定沒有任何問題。問題在於我的設計模式。我在.off之後再次無意中撥打.on(我在console.logging後才發現它)。再次感謝Bergi讓我知道第二個實際上是解除綁定的正確方法!

this.triggery = $.proxy(this.trigger,this); 
相關問題