當(dāng)前位置:首頁(yè) > 新聞中心 > 常見問題
使用jQuery的hover事件在IE中不停閃動(dòng)的解決方法責(zé)任編輯 :李飛    文章來源 :星翼創(chuàng)想(briannamclaughlin.com)    發(fā)布時(shí)間 :2012-09-28    閱讀次數(shù):6003

在使用jQuery的hover事件時(shí),經(jīng)常會(huì)因?yàn)槭髽?biāo)滑動(dòng)過快導(dǎo)致菜單不停閃動(dòng)的情況,相信很多朋友都遇到過自己做的縱向下拉菜單不停的收縮,非常的討厭。今天在給一個(gè)網(wǎng)站設(shè)計(jì)菜單時(shí)也遇到了這個(gè)情況,結(jié)果在百度上找了N久,沒有找到解決方法。在這里吐槽一下,百度太2了,收錄的內(nèi)容都沒什么價(jià)值,最后還是在google找到了解決方法,下面就把這個(gè)jQuery的hover在IE中會(huì)導(dǎo)致不停閃動(dòng)的解決方法教給大家。

$("#category ul").find("li").each(
    function() {
        $(this).mouseover(
            function() {
                $(this).children("ul").show();
            }
        );
        $(this).mouseout(
            function() {
                $(this).children("ul").hide();
            }
        );
    }
);

鼠標(biāo)在下拉菜單移動(dòng)時(shí)菜單會(huì)不斷閃爍,說明不斷觸發(fā)了 mouseover 和 mouseout 事件。

其實(shí)很簡(jiǎn)單的解決方法:將 mouseover 改成 mouseenter,mouseout 改成 mouseleave。mouseenter 和 mouseleave 事件是 jQuery 庫(kù)中實(shí)現(xiàn)的,并不是瀏覽器的原生事件。不過最重要的是把菜單不停閃動(dòng)的問題解決了!

$("#category ul").find("li").each(
    function() {
        $(this).mouseenter(
            function() {
                $(this).children("ul").show();
            }
        );
        $(this).mouseleave(
            function() {
                $(this).children("ul").hide();
            }
        );
    }
);

文章轉(zhuǎn)載請(qǐng)保留網(wǎng)址:http://briannamclaughlin.com/news/faq/834.html

掃碼添加微信
159 8667 8737
24小時(shí)電話

返回頂部