单击文本But no success when you click me
时,会发生错误。我知道错误发生的原因。我的问题是什么是最好的解决方案?发生错误的原因是,在点击x.a
时调用mydiv
时,this
为mydiv
。我们如何才能使x.a
在点击mydiv
时成功运行?
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="mydiv">But no success when you click me</div>
<script>
var x = new Thing();
var y = document.getElementById('mydiv');
x.a();
y.addEventListener('click', x.a, false);
function Thing() {
this.a=function() {
this.b();
}
this.b=function() {
alert('Success');
}
}
</script>
</body>
</html>
&#13;
答案 0 :(得分:2)
y.addEventListener('click', x.a.bind(x), false);
将事件侦听器绑定到方法时,在调用方法时(单击div /按钮时)this
将反映调用该方法的上下文。< / p>