速遞行業新聞

提供多角度全方位的新聞視角

使用jQuery的hover事件在IE中不停閃動的解決方法

時間:2012-09-28

來源:星翼創想(www.ym248s.com)

作者:李飛

在使用jQuery的hover事件時,經常會因為鼠標滑動過快導致菜單不停閃動的情況,相信很多朋友都遇到過自己做的縱向下拉菜單不停的收縮,非常的討厭。今天在給一個網站設計菜單時也遇到了這個情況,結果在百度上找了N久,沒有找到解決方法。在這里吐槽一下,百度太2了,收錄的內容都沒什么價值,最后還是在google找到了解決方法,下面就把這個jQuery的hover在IE中會導致不停閃動的解決方法教給大家。

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

鼠標在下拉菜單移動時菜單會不斷閃爍,說明不斷觸發了 mouseover 和 mouseout 事件。

其實很簡單的解決方法:將 mouseover 改成 mouseenter,mouseout 改成 mouseleave。mouseenter 和 mouseleave 事件是 jQuery 庫中實現的,并不是瀏覽器的原生事件。不過最重要的是把菜單不停閃動的問題解決了!

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

掃碼添加微信
159 8667 8737
24小時電話

欧美国产伦久久久|爆乳护士一区二区三区在线播放|狠狠色丁香婷婷久久综合蜜芽|99国精品午夜福利视频不卡99|午夜福利亚洲第一