在IE7和8中没有显示的Jquery下拉菜单

时间:2011-06-23 09:08:52

标签: javascript jquery internet-explorer

EDITED ----------------------------------------

在用户的帮助下,我们发现加载不能在javascript中运行。它仅适用于topmenu文件。尝试了dom ready函数,但这没效果。任何进一步的建议都会很棒!

   function loadHeader() 
{ 
   $("#header").load("http://www.garden-design-courses.co.uk/lib/header.html"); 
} 

function loadTopmenu() 
{ 
   $("#topmenu").load("http://www.garden-design-courses.co.uk/lib/topmenu.html");

}

我有一个没有在IE7或IE8中显示的jquery菜单。以下是代码

http://www.garden-design-courses.co.uk/

$("ul.subnav").parent().append("<span></span>"); 


$("ul.topnav li span").click(function() { //When trigger is clicked...

    //Following events are applied to the subnav itself (moving subnav up and down)
    $(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click

    $(this).parent().hover(function() {
    }, function(){  
        $(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up
    });

    //Following events are applied to the trigger (Hover events for the trigger)
    }).hover(function() { 
        $(this).addClass("subhover"); //On hover over, add class "subhover"
    }, function(){  //On Hover Out
        $(this).removeClass("subhover"); //On hover out, remove class "subhover"
});

菜单是

    <ul class="topnav"> 
    <li><a href="#" class="dip">Top Navigation</a>
     <ul class="subnav">
     <li>subnav</li>
     </ul>
    </li>
    </ul>

2 个答案:

答案 0 :(得分:1)

问题不在于您在问题中的导航代码,而是因为菜单甚至没有加载到页面上。

在IE上分析代码显示调用了loadTopmenu函数,但显然它的内容没有被加载到页面上。

尝试将loadTopmenu修改为仅在DOM准备就绪时调用:

function loadTopmenu() 
{ 
   $(function(){
   $("#topmenu").load("http://www.garden-design-courses.co.uk/lib/topmenu.html");
   }); 
}

答案 1 :(得分:0)

当我得到这种行为时,由于我忘记将所有内容包装在

$(function(){
...
});

没有它,它将在大多数浏览器中工作,除了IE ..