js的事件处理

简介:
1.传统的方法
1.)作为HTML标签属性的事件句柄.
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"  />
< title >Event </title>
< style  type ="text/css" >

</style>
</head>
< body >
< ! --好像现在只有IE这样的可以使用status了,其他的为了安全起见都给关闭这个功能了-- >
< p > < a  id ="netease"  href ="http://www.163.com"  title ="网易首页"      onMouseover ="window.status='单击打开网易首页';return true"  onMouseout ="window.status=''" >网易 </a> </p>
</body>
</html>      
          

2.)用脚本属性

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"  />
< title >Event </title>
< style  type ="text/css" >

</style>
</head>
< body >
< ! --好像现在只有IE这样的可以使用status了,其他的为了安全起见都给关闭这个功能了-- >
< p > < a  id ="netease"  href ="http://www.163.com"  title ="网易首页" >网易 </a> </p>
< script  type ="text/javascript" >
function handleStatus()
{
window.status='单击打开网易首页';
return true;
}
function recoverStatus()
{
window.status='';
}

document.getElementById("netease").onmouseover=handleStatus;
document.getElementById("netease").onmouseout=recoverStatus;
</script>
</body>
</html>      

2.DOM3的方式
addEventListener
 
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > 
< html  xmlns ="http://www.w3.org/1999/xhtml" > 
< head > 
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"  /> 
< title >Event </title> 
< style  type ="text/css" > 
#div1 

border:1px dotted #9a8; 
background-color:#f3fedd; 
padding:5px; 

#span1 

background-color:#fce; 
display:block; 

</style> 
</head> 
< body > 
< div  id ="div1" > 
移到我上面 
</div> 
< script  type ="text/javascript" > 
function changeText() 

document.getElementById("span1").innerHTML="我终于可以见天日啦!"; 


document.getElementById("div1").addEventListener("mouseover",changeText,false); 
</script> 
< span  id ="span1" > </span> 
</body> 
</html>    
 
 
上面的代码在火狐3里运行如下:
 
 
 
 
 
3.IE5+的处理
IE采用的是attachEvent,而且不支持第3个参数,而且IE只是支持事件流的一部分。
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > 
< html  xmlns ="http://www.w3.org/1999/xhtml" > 
< head > 
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"  /> 
< title >Event </title> 
< style  type ="text/css" > 
#div1 

border:1px dotted #9a8; 
background-color:#f3fedd; 
padding:5px; 

#span1 

background-color:#fce; 
display:block; 

</style> 
</head> 
< body > 
< div  id ="div1" > 
移到我上面 
</div> 
< script  type ="text/javascript" > 
function changeText() 

document.getElementById("span1").innerHTML="我终于可以见天日啦!"; 


document.getElementById("div1").attachEvent(" 
</script> 
< span  id ="span1" > </span> 
</body> 
</html>        
 
注意IE的这个是onmouseover有个on,而DOM3那个没有on.
 
4.修改下移植性更好些:
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > 
< html  xmlns ="http://www.w3.org/1999/xhtml" > 
< head > 
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"  /> 
< title >Event </title> 
< style  type ="text/css" > 
#div1 

border:1px dotted #9a8; 
background-color:#f3fedd; 
padding:5px; 

#span1 

background-color:#fce; 
display:block; 

</style> 
</head> 
< body > 
< div  id ="div1" > 
移到我上面 
</div> 
< script  type ="text/javascript" > 
function changeText() 

document.getElementById("span1").innerHTML="我终于可以见天日啦!"; 


var elem=document.getElementById("div1"); 
if(elem.addEventListener){ 
elem.addEventListener("mouseover",changeText,false); 
}else if(elem.attachEvent){ 
elem.attachEvent(" 
}else{ 
elem. 

</script> 
< span  id ="span1" > </span> 
</body> 
</html>        




本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/102850,如需转载请自行联系原作者


相关文章
|
3月前
|
JavaScript 前端开发
|
3月前
|
JavaScript 算法
|
3月前
|
JavaScript
|
22天前
|
JavaScript
事件触发、事件捕获与事件冒泡(js的问题)
事件触发、事件捕获与事件冒泡(js的问题)
12 0
|
3天前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素传递,而事件捕获则从外层元素向内层传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。示例代码展示了如何设置。
19 2
|
24天前
|
JavaScript 前端开发 流计算
JS:oninput和onchange事件的区别
JS:oninput和onchange事件的区别
21 1
|
1月前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素依次触发事件,而事件捕获则从最外层元素向内层元素传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。例如: ```javascript element.addEventListener(&#39;click&#39;, console.log, false); // 冒泡 element.addEventListener(&#39;click&#39;, console.log, true); // 捕获 ```
18 0
|
1月前
|
JavaScript 前端开发
JS页面加载事件
JS页面加载事件
|
1月前
|
JavaScript
|
1月前
|
JavaScript 前端开发
js阻止浏览器默认事件和防止事件传播事件
js阻止浏览器默认事件和防止事件传播事件
21 3