'这'和JavaScript中的addEventListener

时间:2017-02-24 07:18:29

标签: javascript this addeventlistener

单击文本But no success when you click me时,会发生错误。我知道错误发生的原因。我的问题是什么是最好的解决方案?发生错误的原因是,在点击x.a时调用mydiv时,thismydiv。我们如何才能使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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

y.addEventListener('click', x.a.bind(x), false);

将事件侦听器绑定到方法时,在调用方法时(单击div /按钮时)this将反映调用该方法的上下文。< / p>