Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的代码在IE8中非常慢。但在Safari、firefox和chrome中,它的效果非常好_Javascript_Jquery - Fatal编程技术网

Javascript 我的代码在IE8中非常慢。但在Safari、firefox和chrome中,它的效果非常好

Javascript 我的代码在IE8中非常慢。但在Safari、firefox和chrome中,它的效果非常好,javascript,jquery,Javascript,Jquery,我现在陷入困境,我真的希望有人能告诉我我真正没有看到的问题 问题是菜单栏在Safari、FF和Chrome中都很好用。但是当我打开IE8时,当我把鼠标光标放在另一个菜单区域时,它的速度太慢了。或者更好,整个菜单都太慢了 html id和类是 <div class="oe_wrapper"> <ul id="oe_menu" class="oe_menu"> 这是我的菜单代码: <div class="oe_wrapper"> <

我现在陷入困境,我真的希望有人能告诉我我真正没有看到的问题

问题是菜单栏在Safari、FF和Chrome中都很好用。但是当我打开IE8时,当我把鼠标光标放在另一个菜单区域时,它的速度太慢了。或者更好,整个菜单都太慢了

html id和类是

  <div class="oe_wrapper">
     <ul id="oe_menu" class="oe_menu">
这是我的菜单代码:

<div class="oe_wrapper">


    <ul id="oe_menu" class="oe_menu">

        <li><a href="#">Lipsum</a>
            <div>
                <ul>
                    <li class="oe_heading">Lipsum</li>
                    <li><a href="#">Lipsum</a></li>
                </ul>
                <ul>
                    <li class="oe_heading">Lipsum</li>
                    <li><a href="#">Lipsum</a></li>
                    <li><a href="#">Lipsum</a></li>
                    <li><a href="#">Lipsum</a></li>
                    <li><a href="#">Lipsum</a></li>
                </ul>
            </div>
        </li>


        <li><a href="#">PRODUCTEN</a>
            <div style="left:-191px;">
                <ul>
                    <li class="oe_heading">Lipsum</li>
                    <li><a href="#">Lipsum</a></li>
                    <li><a href="#">Lipsum</a></li>
                    <li><a href="#">Lipsum</a></li>
                    <li><a href="#">Persen</a></li>
                </ul>


                </ul>
            </div>
        </li>
        <li><a href="#">Lipsum</a>
            <div style="left:-383px;">
                <ul class="oe_full">
                    <li class="oe_heading">Lipsum</li>
                    <li><a href="#">Lipsum</a></li>

                </ul>
            </div>
        </li>


        <li><a href="#">Lipsum</a>
            <div style="left:-575px;">
                <ul>
                    <li class="oe_heading">Lipsum</li>
                    <li><a href="#">Lipsum</a></li>
                    <li><a href="#">Lipsum</a></li>
                </ul>
                <ul>
                    <li class="oe_heading">Lipsum</li>
                    <li><a href="#">Lipsum</a></li>
                                    <li><a href="#">Lipsum</a></li>
                </ul>
            </div>
        </li>



        <li><a href="#">CONTACT</a>
            <div style="left:-767px;">
                    <ul>
                    <li class="oe_heading">Lipsum/li>
                                    <li><a href="#">Lipsum</a></li>
                    <li><a href="#">Lipsum</a></li>
                </ul>

            </div>
        </li>
    </ul>   
</div>

    • Lipsum
      Lipsum
    • Lipsum
    • Lipsum
    • Lipsum
      Lipsum
    • Lipsum/li>

  • 性能消耗可能在dom遍历on事件中。众所周知,Ie8在遍历dom方面非常慢

    解决此问题的一种方法是像这样预遍历和缓存结果:

    $(function () {
        var $oe_menu = $('#oe_menu');
        var $oe_menu_items = $oe_menu.children('li');
        var $oe_overlay = $('#oe_overlay');
    
        $oe_menu_items.each(function(){
            var $this = $(this);
            $this.data('div-children', $this.children('div'));                  
        });
    
        $oe_menu_items.bind('mouseenter', function () {
            var $this = $(this);
            $this.addClass('slided selected');
            $this.data('div-children').css('z-index', '9999').stop(true, true).slideDown(300, function () {
                $oe_menu_items.not('.slided').data('div-children').hide();
                $this.removeClass('slided');
            });
        }).bind('mouseleave', function () {
            var $this = $(this);
            $this.removeClass('selected').data('div-children').css('z-index', '1');
        });
    
        $oe_menu.bind('mouseenter', function () {
            var $this = $(this);
    
            $this.addClass('hovered');
        }).bind('mouseleave', function () {
            var $this = $(this);
            $this.removeClass('hovered');
    
            $oe_menu_items.children('div').hide();
        })
    });
    

    尝试使用或。

    将其重新标记到jQuery可能会让您获得更多的曝光。根据我的经验,IE(特别是8)比其他浏览器更难处理事件。当您尝试附加太多事件时,它会变得非常缓慢。你们有多少菜单项?我忘了提。。。IE是cr*p(请原谅我的语言)不是故意的吗?我一直认为IE是为了惹恼开发人员而构建的,所以…=))bamic01,请停止使用答案作为发表意见的地方。(全部)。简单的解决方法:让他们安装并将
    meta标记添加到您的页面中。No 1.4.3应该可以,但升级可能不会有什么坏处:)嗨,Martin,我现在更新了.js文件。但它仍然很慢,我发布的jQuery1.5链接很快就会出来。你最好等一下。马丁,你看到我贴的链接了吗?你觉得为什么这么慢?可能是错误的css代码?或者是js?我查看了你的网站,并通过dynatrace运行了它-似乎你的问题是渲染而不是js-据我所知ie8根本无法快速渲染标记以使其顺利运行。仍然没有线索,我没有那么熟练。我的老师告诉我这个网站是因为有很多人支持。
    $(function () {
        var $oe_menu = $('#oe_menu');
        var $oe_menu_items = $oe_menu.children('li');
        var $oe_overlay = $('#oe_overlay');
    
        $oe_menu_items.each(function(){
            var $this = $(this);
            $this.data('div-children', $this.children('div'));                  
        });
    
        $oe_menu_items.bind('mouseenter', function () {
            var $this = $(this);
            $this.addClass('slided selected');
            $this.data('div-children').css('z-index', '9999').stop(true, true).slideDown(300, function () {
                $oe_menu_items.not('.slided').data('div-children').hide();
                $this.removeClass('slided');
            });
        }).bind('mouseleave', function () {
            var $this = $(this);
            $this.removeClass('selected').data('div-children').css('z-index', '1');
        });
    
        $oe_menu.bind('mouseenter', function () {
            var $this = $(this);
    
            $this.addClass('hovered');
        }).bind('mouseleave', function () {
            var $this = $(this);
            $this.removeClass('hovered');
    
            $oe_menu_items.children('div').hide();
        })
    });