下拉列表(阻止冒泡练习)


<style>
ul{
    padding: 0;margin:0;list-style: none;
}
.item{
         border:1px solid #ccc;
         width:100px;
        height: 30px;
}
.item span{
                float:left;
                width:80px;
                height: 30px;
                line-height: 30px;
                text-align: center;
}
.item span:nth-child(2){
                                  width:0;
                                  height:0;
                                  border:5px solid transparent;
                                  border-top-color:#000;
                                  margin-top: 10px;
                                  margin-left:5px;
}
.list{
       clear:both;
       display: none;
       border:1px solid #ccc;
       width: 100px;
}
.list li:hover{
                  background: #ccc;
}

</style>

<div id="item" class="item"><span class="content">北京</span><span></span></div>
<ul id="list" class="list">
    <li>北京</li>
    <li>上海</li>
    <li>武汉</li>
    <li>长沙</li>
    <li>深圳</li>
</ul>

 


<script>
function $(id){
    return document.getElementById(id);
}

function preventBubble(ev){ //阻止冒泡
    var e=event||ev;
    if(e.stopPropagation){
        e.stopPropagation();
    }
    else{
        window.event.cancelBubble=true;
    }
}
var item = $("item");
var list = $('list');
var lis = list.getElementsByTagName("li");
var spans= item.getElementsByTagName("span");

spans[1].onclick=function(ev){//点击三角形显示所有目标项
    list.style.display="block";
    preventBubble(ev); //调用阻止冒泡
}
for(var i=0;i<lis.length;i++){ //点击目标被选中状态,
    lis[i].onclick=function(){
        spans[0].innerHTML=this.innerHTML;
        list.style.display="none";//其他的项隐藏
    }
}
document.onclick=function(){ //点击空白地方目标项隐藏
    list.style.display="none";
}
</script>

posted @ 2017-04-18 17:24  非凡。  阅读(305)  评论(0编辑  收藏  举报