為什么我點擊li列表時沒有添加阻止冒泡,也能正常關閉列表啊
?<script type="text/javascript">
window.onload=function(){
var box=document.getElementById('divselect'),
? ?title=box.getElementsByTagName('cite')[0],
? ?menu=box.getElementsByTagName('ul')[0],
? ?as=box.getElementsByTagName('a'),
? ? ? ? index=-1;
? ?
? ? // 點擊三角時
? ? title.onclick=function(event){
? ? ? // 執行腳本
? ? ? menu.style.display='block';
? ? ? event=event || window.event;
? ? ? event.stopPropagation();
? ? } ?
? ??
? ?// 滑過滑過、離開、點擊每個選項時
? ? ? // 執行腳本
? ? var li=menu.getElementsByTagName('li');
? ? for(var i=0;i<li.length;i++){
? ? ? ? li[i].onmouseover=function(){
? ? ? ? ? ? this.style.backgroundColor='#ccc';
? ? ? ? }
? ? ? ? li[i].onmouseout=function(){
? ? ? ? ? ? this.style.backgroundColor='#fff';
? ? ? ? }
? ? ? ? li[i].onclick=function(){
? ? ? ? ? ? menu.style.display='none';
? ? ? ? ? ? title.innerHTML=this.getElementsByTagName('a')[0].innerHTML;
? ? ? ? }
? ? }
? ?// 點擊頁面空白處時
? ? ? ?// 執行腳本
? ? document.onclick=function(){
? ? ? ? menu.style.display='none';
? ? ? ??
? ? }
?}
? ?</script>
2017-06-26
因為document.onclick隱藏了,除了點title 阻止了冒泡,其他地方都是冒泡,點li也是,就隱藏了
2017-04-12
因為這里的ul和cite元素是同一層的,你的顯示列表事件是綁定在cite里的,當你觸發li下面的事件時只會向上冒泡:a-li-ul-div-document,并不會觸及cite