none
如何在对象内将自身方法绑定到dom事件 RRS feed

  • 问题

  • 请看如下两段js代码:

    function test(){
    document.getElementById('searchTerm').addEventListener('click',function(){alert(0);});
    }
    
    function testF(){
    document.getElementById('searchTerm').addEventListener('click',this.A);
    this.A = function(){alert(9);};
    }

    当执行var t = new test()后,点击searchTerm则会弹出0

    当执行var t = new testF()后,点击searchTerm则没有任何反应。

    请问这是为什么呢?

    如何修改第二段代码才能让点击searchTerm时弹出9?

    2012年7月30日 8:47

答案

  • 感觉应该让this.A在addEventListener之前被赋值吧,比如:

    function testF(){
    this.A = function(){alert(9);};
    document.getElementById('searchTerm').addEventListener('click',this.A);
    }

    2012年7月30日 19:15

全部回复

  • 感觉应该让this.A在addEventListener之前被赋值吧,比如:

    function testF(){
    this.A = function(){alert(9);};
    document.getElementById('searchTerm').addEventListener('click',this.A);
    }

    2012年7月30日 19:15
  • 真的耶,天哪,这个问题困扰了我好久,居然就这么简单。

    唉,还是自己对js面向对象编程不熟悉啊。

    2012年7月31日 2:23