如何从onClick事件中调用对象函数?

时间:2015-02-23 09:01:10

标签: javascript

我有一个包含tree.js的test.html。

在这个HTML中我有

<div id='forObj'></div>
<script type='text/javascript'>
var obj = new Tree(document.getElementById('forObj');
</script>

在Tree.js文件中我有一个名为

的函数
this.draw
...
else
            {

                    div.onclick = function(){obj.eventFoo(this.id);};

            }

...

我的问题是:现在每个人都必须引用Object obj,否则这将不起作用。

我如何概括它,因此Object可以获得编码器想要使用的每个名字?

1 个答案:

答案 0 :(得分:0)

使用closure为事件监听器定义您自己的obj变量和当前实例:

… else {
    var obj = this;
    div.onclick = function(e) {
        obj.eventFoo(this.id);
    };
}

另请参阅How to access the correct `this` context inside a callback?以了解问题的非常相似的表现形式(尽管您希望使用处理程序的this)。