在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 使用事件委托,click改變了背景顏色,點擊后出現(xiàn)顏色改變但立刻消失了是怎么回事

使用事件委托,click改變了背景顏色,點擊后出現(xiàn)顏色改變但立刻消失了是怎么回事

html代碼

                <ul class="header-nav" id="header-nav">
                    <li>
                        <a href="" class="active">首頁</a>
                    </li>
                    <li>
                        <a href="">代碼世界</a>
                    </li>
                    <li>
                        <a href="">猿故事</a>
                    </li>
    
                </ul>

js代碼

var EventUtil = {

                addHandler: function (element, type, handler) {
                    if (element.addEventListener) {        //DOM2級
                        element.addEventListener(type, handler, false);

                    } else if (element.attachEvent) {      //DOM1級
                        element.attachEvent("on" + type, handler);

                    } else {
                        element["on" + type] = handler;    //DOM0級
                    }
                },

                removeHandler: function (element, type, handler) {   //類似addHandler

                    if (element.removeEventListener) {
                        element.removeEventListener(type, handler, false);

                    } else if (element.detachEvent) {
                        element.detachEvent("on" + type, handler);

                    } else {
                        element["on" + type] = null;

                    }
                }
            }
        window.onload = function(){   
            var ul = document.getElementById('header-nav');
            var aLi = ul.getElementsByTagName("li");
            EventUtil.addHandler(ul,"click",function(event){
                var ev = ev || window.event;
                var target = ev.target || ev.srcElement;
                console.log(target);//這里在控制臺閃現(xiàn)一下
                if(target.nodeName.toLowerCase() == "li"){
                    var that=target;
                    console.log(that);//這里沒執(zhí)行
                    var index;
                    for(var i=0;i<aLi.length;i++){
                        if(aLi[i]===target){
                            index=i;
                        }
                        if(index>=0){
                            alert('我的下標是第'+index+'個');
                        }
                        target.style.background = "red";
                    }
                }    
            })
        }
回答
編輯回答
愿如初

你的a標簽里沒寫內(nèi)容

<li>
    <a href="" class="active">首頁</a>
</li>

寫個#就可以了:<a href="#" class="active">首頁</a>
如果不想發(fā)生跳轉(zhuǎn),就寫javascript:;, <a href="javascript:;" class="active">首頁</a>

2017年1月14日 14:29
編輯回答
挽青絲

因為觸發(fā)點擊的實際是a標簽啊,你把a標簽去掉看看

2018年2月12日 22:39