wqrefgdsklh 2016-10-22 13:29 采纳率: 0%
浏览 795

一个关于冒泡与捕获的js问题

在下面代码中,as[i].onclick事件中为设置display=“none”,但它的父级依然隐藏了,这是为什么?

<!doctype html>



下拉菜单
<br> body,ul,li{ margin:0; padding:0; font-size:13px;}<br> ul,li{list-style:none;}<br> #divselect{width:186px; margin:80px auto; position:relative; z-index:10000;}<br> #divselect cite{width:150px; height:24px;line-height:24px; display:block; color:#807a62; cursor:pointer;font-style:normal;<br> padding-left:4px; padding-right:30px; border:1px solid #333333; <br> background:url(2.jpg) no-repeat right center;}<br> #divselect ul{width:184px;border:1px solid #333333; background-color:#ffffff; position:absolute; z-index:20000; margin-top:-1px; display:none;}<br> #divselect ul li{height:24px; line-height:24px;}<br> #divselect ul li a{display:block; height:24px; color:#333333; text-decoration:none; padding-left:10px; padding-right:10px;}<br>
<br> window.onload=function(){<br> var box=document.getElementById(&#39;divselect&#39;),<br> title=box.getElementsByTagName(&#39;cite&#39;)[0],<br> menu=box.getElementsByTagName(&#39;ul&#39;)[0],<br> as=box.getElementsByTagName(&#39;a&#39;),<br> index=-1;</p> <pre><code>// 点击三角时 title.onclick=function(event){ event=event || window.event; if(event.stopPropagation){ event.stopPropagation(); } else{ event.cancelBubble=true; } menu.style.display=&#39;block&#39;; document.onkeyup=function(e){ e=e || window.event; for(var i=0;i&lt;as.length;i++){ as[i].style.background=&#39;#fff&#39;; } // 如果按下了向下方向键 if(e.keyCode==40){ index++; if(index&gt;=as.length){ index=0; } as[index].style.background=&quot;#ccc&quot;; } // 如果按下了向上方向键 if(e.keyCode==38){ if(index&lt;=0){ index=as.length; } index--; as[index].style.background=&quot;#ccc&quot;; } // 如果按下了回车键 if(e.keyCode==13 &amp;&amp; index!=-1){ title.innerHTML=as[index].innerHTML; for(var i=0;i&lt;as.length;i++){ as[i].style.background=&#39;none&#39;; } menu.style.display=&#39;none&#39;; index=-1; } } </code></pre> <p>} </p> <pre><code>// 滑过滑过、离开、点击每个选项时 for(var i=0;i&lt;as.length;i++){ as[i].onmouseover=function(){ this.style.background=&#39;#ccc&#39;; } as[i].onmouseout=function(){ this.style.background=&#39;none&#39;; } as[i].onclick=function(){ title.innerHTML=this.innerHTML; } </code></pre> <p>}</p> <pre><code>// 点击页面空白处时 document.onclick=function(){ menu.style.display=&#39;none&#39;; } </code></pre> <p>}<br>




  • 写回答

1条回答 默认 最新

  • 当作看不见 2016-10-22 15:07
    关注

    我就想问问这代码给谁看的。。有一个添加代码段的选项功能,用这个发吧

    评论

报告相同问题?

悬赏问题

  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害