this
•事件中的this。除了可以使用event.srcElement在事件响应函数中,this表示发生事件的控件。只有在事件响应函数才能使用this获得发生事件的控件,在事件响应函数调用的函数中不能使用,如果要使用则要将this传递给函数或者使用event.srcElement。(*)this和event.srcElement的语义是不一样的,this就是表示当前监听事件的这个对象,event.srcElement是引发事件的对象:事件冒泡。
要点:分清事件响应函数和事件响应函数的调用函数:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 2 3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4 <html xmlns="http://www.w3.org/1999/xhtml" > 5 <head> 6 <title></title> 7 <script type="text/javascript"> 8 function btn3() { 9 alert(event.srcElement.value); 10 } 11 //btn事件《响应函数》的《调用函数》 12 function btn4() { 13 alert(this.value); 14 } 15 16 function initBtn5() { 17 var btn = document.getElementById("btn5"); 18 //事件响应函数 19 btn.onclick = btn4; 20 } 21 </script> 22 </head> 23 <body onload="initBtn5()"> 24 25 //通过srcElement获得引发事件的对象,//获取了"click1" 26 <input type="button" value="click1" onclick="alert(event.srcElement.value)" /><br /> 27 <!-- 事件响应函数-->----达到同样的目的, 28 <input type="button" value="click2" onclick="alert(this.value)" />//获取了"click2" 29 30 <input type="button" value="click3" onclick="btn3()" /> //输出"click3" 31 <input type="button" value="click4" onclick="btn4()" /> //输出undefine,这里是onclick调用btn4() 32 33 34 <input id="btn5" type="button" value="click5" /> //输出"click5" 35 36 37 </body> 38 </html>
浙公网安备 33010602011771号