1. if(e.id!=aname) //这里的e.id是指什么啊?
2. 是先执行inDaohang函数还是先执行closeDaohang函数啊?
3. obj.parentNode //是指哪个的父元素啊?
4. if(!inDaohang(divname,e)){ //这里的意思是不是说."如果没有inDaohang函数".我是这样理解的.不知道对不对?
5. var f = false; //这一句是不是没作用的?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function aa(divname,num){
var a = document.getElementsByName(divname);
for(var i=0;i<a.length;i++){
if(i==num){
a[i].style.display='block';
}else{
a[i].style.display='none';
}
}
}
function inDaohang(divname,obj){
var f = false;
while(obj.parentNode){
if(obj.name==divname){
return true;
}
obj = obj.parentNode;
}
return false;
}
function closeDaohang(e,divname,aname){
if(e.id!=aname)
if(!inDaohang(divname,e)){
var a = document.getElementsByName(divname);
for(var i=0;i<a.length;i++){
a[i].style.display='none';
}
}
}
//-->
</SCRIPT>
<style>
/* 渐变弹出层 */
body{font-size:9pt;}
#race{width:200px;height:50px;line-height:50px;text-align:center;background:#CCC;border:#555 1px solid;}
.raceShow{background-color:#f1f1f1;border:solid 1px #ccc;position:absolute;display:none;width:300px;height:100px;padding:5px;font-size:12px;}
#UpLayer span{border:#fff 1px solid; width:80px; padding:0 5px; line-height:20px; display:block;}
#UpLayer ul{display:none;position:absolute;border:#ccc 1px solid;width:80px; padding:5px; line-height:20px; background:#f1f1f1; margin:-1px 0 0 0;}
#UpLayer ul li{ border-bottom:#ccc 1px dashed;}
</style>
</HEAD>
<BODY onclick="closeDaohang(event.srcElement||event.target,'racePop','bb')">
<!-- 渐变弹出层 -->
<div id="race"><a id="bb" href="javascript:;" onclick="aa('racePop',0)">点击</a></div>
<div id="racePop" name="racePop" class="raceShow">这里是弹出层效果</div>
<div id="UpLayer">
<span><a href="javascript:void(0)">弹出层</a></span>
<ul>
<li><a href="#">手机资讯</a></li>
<li><a href="#">热门文章</a></li>
<li><a href="#">联系站长</a></li>
<li><a href="#">建议意见</a></li>
</ul>
</div>
</BODY>
</HTML>
2. 是先执行inDaohang函数还是先执行closeDaohang函数啊?
3. obj.parentNode //是指哪个的父元素啊?
4. if(!inDaohang(divname,e)){ //这里的意思是不是说."如果没有inDaohang函数".我是这样理解的.不知道对不对?
5. var f = false; //这一句是不是没作用的?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function aa(divname,num){
var a = document.getElementsByName(divname);
for(var i=0;i<a.length;i++){
if(i==num){
a[i].style.display='block';
}else{
a[i].style.display='none';
}
}
}
function inDaohang(divname,obj){
var f = false;
while(obj.parentNode){
if(obj.name==divname){
return true;
}
obj = obj.parentNode;
}
return false;
}
function closeDaohang(e,divname,aname){
if(e.id!=aname)
if(!inDaohang(divname,e)){
var a = document.getElementsByName(divname);
for(var i=0;i<a.length;i++){
a[i].style.display='none';
}
}
}
//-->
</SCRIPT>
<style>
/* 渐变弹出层 */
body{font-size:9pt;}
#race{width:200px;height:50px;line-height:50px;text-align:center;background:#CCC;border:#555 1px solid;}
.raceShow{background-color:#f1f1f1;border:solid 1px #ccc;position:absolute;display:none;width:300px;height:100px;padding:5px;font-size:12px;}
#UpLayer span{border:#fff 1px solid; width:80px; padding:0 5px; line-height:20px; display:block;}
#UpLayer ul{display:none;position:absolute;border:#ccc 1px solid;width:80px; padding:5px; line-height:20px; background:#f1f1f1; margin:-1px 0 0 0;}
#UpLayer ul li{ border-bottom:#ccc 1px dashed;}
</style>
</HEAD>
<BODY onclick="closeDaohang(event.srcElement||event.target,'racePop','bb')">
<!-- 渐变弹出层 -->
<div id="race"><a id="bb" href="javascript:;" onclick="aa('racePop',0)">点击</a></div>
<div id="racePop" name="racePop" class="raceShow">这里是弹出层效果</div>
<div id="UpLayer">
<span><a href="javascript:void(0)">弹出层</a></span>
<ul>
<li><a href="#">手机资讯</a></li>
<li><a href="#">热门文章</a></li>
<li><a href="#">联系站长</a></li>
<li><a href="#">建议意见</a></li>
</ul>
</div>
</BODY>
</HTML>
解决方案 »
- 求助 javascript传值给ASP.NET的问题(火狐下)
- 有什么可能导致页面中所有的文本框无法输入的?
- 如何将"\"替换成"\\"?
- 超级难度,用透明flash罩住流媒体(mms)
- 如果让每次打开网页或刷新网页,自动滚动到最尾?
- 【新年散分】 祝大家新年快乐,万事如意!都能平安的回家!
- 网页中的全角半角转换,怎么做呢?
- Data tables的Bootstrap样式给分页器增加首页尾页,找到了论坛的解决方法,菜鸟看不懂,求解答
- 如何在<script language="javascript" > </script>内使用session["123"]的内容!
- 死循环~~谁会解决
- JQuery 找出控件位置到浏览器屏幕顶端的距离
- JS如何自动加载整棵动态树,我用的是jquery控件
2. 是先执行inDaohang函数还是先执行closeDaohang函数啊?
3. obj.parentNode //是指哪个的父元素啊?
4. if(!inDaohang(divname,e)){ //这里的意思是不是说."如果没有inDaohang函数".我是这样理解的.不知道对不对?
5. var f = false; //这一句是不是没作用的?
回答:
1)e.id为触发事件的标签的id
2)先执行inDaohang,不然还没打开,你就先closeDaohang关闭掉有什么意义呢?
3)你调用函数inDaohang的时候,传递的参数是哪个标签,obj.parentNode就是指哪个标签的父元素
4)不是如果没有函数,是如果执行该函数,返回的是false时
5)这句你可以删掉了,这个变量定义之后,没有再调用
e.id为触发事件的标签的id //是不是这个窗口下的全部有ID属性的div
obj.parentNode //是指哪个的父元素啊? event.srcElement||event.target 指的是触发事件元素的上一级元素,如果你在race(即id = race的div为event.srcElement||event.target)中点的话,那么触发事件元素的上一级元素就是body,如果是在bb中点击的话,那么就是racee.id为触发事件的标签的ide是之函数接收过来的事件,e.id 等同于 event.srcElement.id||event.target.id好好看看js的event的基础知识再来分析吧,这些都是基础概念,不要还没有走,就想着跑