日期:2014-05-16 浏览次数:20422 次
今天复习下JS的冒泡事件,如果一个按钮被单击,那么这个按钮就是他的目标.如果已经为这个对象定义好了事件处理程序,那么这个事件就会调用事件处理程序,如果没有定义任何处理程序,或者事件处理程序的返回值为'true'(为'false'将会取消事件),那么这个事件会向这个对象的父级对象传播,进行处理,这个事件会一直在整个对象层次中冒泡,直到他被处理,或者他到达对象层次的最顶层,document对象。而捕获事件是针对非IE浏览器的
代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Content-Type" CONTENT="text/html;charset=utf-8">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<div id="outer">outer
<p id="inner">inner
<input type="button" id="btn" value="button">
</p>
</div>
<SCRIPT LANGUAGE="JavaScript">
<!--
var outer=document.getElementById("outer");
var inner=document.getElementById("inner");
var btn= document.getElementById("btn");
alert(outer);
alert(inner);
alert(btn);
outer.onclick=function(){
alert("click outer");
this.style.color="red";
}
inner.onclick=function(){
this.style.color="blue";
}
btn.onclick=function(){
this.style.color="yellow";
}
//-->
</SCRIPT>
</BODY>
</HTML>
?<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> JavaScript中的事件(上) </TITLE>
<META NAME="Content-Type" CONTENT="text/html;charset=utf-8">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<div id="bgDiv" style="height: 200px;width: 200px;background-color:red; display:none;">
</div>
<input type="button" id="btn" value="button" />
<SCRIPT LANGUAGE="JavaScript">
<!--
var bgDiv=document.getElementById("bgDiv");
var btn=document.getElementById("btn");
function stopBubble(e){
if(e&&e.stopPropagation()){
//火狐浏览器阻止冒泡事件
e.stopProgation();
}else{
//IE浏览器阻止冒泡事件
window.event.cancelBubble=true;
}
}
btn.onclick=function(e){
if(bgDiv.style.display=="none"){
alert("button按钮把bgDiv层变为显示状态");
bgDiv.style.display="block";
}else if(bgDiv.style.display!="none"){
alert("button按钮把bgDiv层变为隐藏状态");
bgDiv.style.display="none";
}
stopBubble(e);
}
document.onclick=function(e){
alert("document把bgDiv层变成隐藏状态");
bgDiv.style.display="none";
}
//-->
</SCRIPT>
</BODY>
</HTML>
?