Class Prototype | keyup Event.stopObserving()在处理程序绑定到类时不工作

Class Prototype | keyup Event.stopObserving()在处理程序绑定到类时不工作,class,prototypejs,bind,observer-pattern,Class,Prototypejs,Bind,Observer Pattern,这是我的意见:我正在观察文档以获取密钥,然后给处理程序打电话。处理程序正在调用一个类的函数,并绑定到该类的上下文。当函数被调用并且满足我的条件时,它应该停止观察处理程序。但事实并非如此 创建了一个类,这是我在第页调用的函数: look_for: function(key_combo) { this.keys_array = key_combo.split("+"); this.match_key_handler = this.match_keys.bind(this);

这是我的意见:我正在观察文档以获取密钥,然后给处理程序打电话。处理程序正在调用一个类的函数,并绑定到该类的上下文。当函数被调用并且满足我的条件时,它应该停止观察处理程序。但事实并非如此

创建了一个类,这是我在第页调用的函数:

look_for: function(key_combo) {

    this.keys_array = key_combo.split("+");

    this.match_key_handler = this.match_keys.bind(this);

    document.observe('keyup', this.match_key_handler);

},
这将调用文档以观察keyup并调用This.match_keys()。如您所见,它被分配给处理程序,因为需要绑定函数。以下是匹配键功能:

match_keys: function() {

  // matching the keys here, blah blah

  if(this.keys_matched) {

    document.stopObserving('keyup',this.match_key_handler);

   }

}
然而,当条件满足时,它不会停止观察!如果我停止观察文档上的所有键控,它将注销此函数,但我希望它只注销match_key_处理程序

斯塔克,帮帮我!下面是另一篇类似的帖子。跟随页面上的内容,但仍然没有骰子


我看不出您发布的代码有任何问题。。。一些问题:
look\u for
是否总是在
match\u key
之前调用?是否多次调用了
look_for
(每次设置一个新的处理程序,但只跟踪一个)?Kit,我通过修改一些代码修复了我的解决方案。然而,我想我知道我做错了什么。调用look_for时,它是在如下匿名函数中调用的:document.observe('keyup',function(){myclass.look_for(key_combo);});尽管我正确注册了处理程序,但我始终无法访问它,因为我正在调用另一个调用match_键的函数。德比!