尝试解除绑定$.proxy中的原型事件处理程序

Attempts to unbind event handler that is in $.proxy and is a prototype

本文关键字:原型 事件处理 程序 proxy 绑定      更新时间:2023-09-26

在对象的原型中,我有

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

在另一个原型中,我有

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

但是CCD_ 1并没有解除对CCD_ 2的绑定。

因此,我尝试在function1:中将$.proxy(this.trigger,this)作为obj的属性

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

并在function2:中将其关闭

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

但它仍然不能被.off所取代;

我应该如何解除像这样的事件处理程序的绑定?

附言:我试过使用传统的.bind.unbind,但都没有用

问题已解决。装订没有任何问题;解除绑定。问题出在我的设计模式上。我不小心在$(window).off("scroll",this.trigger);1之后再次调用了.on(我是在console.logging之后才发现的)。再次感谢Bergi让我知道第二个实际上是解除绑定的正确方法!

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