2011-03-01 72 views
0

我使用具有这种基本结构的菜单:李里面UL内里

<ul id="nav"> 
<li><a href="index.php?location=home" id="home_link">HOME</a></li> 
<li id="movies_link_li"><a href="#" class="movies_link">MOVIES</a> 
    <ul id="movies_submenu"> 
    <li><a href="#" id="insert_movie_link">Insert movie</a></li> 
    <li><a href="#" id="movie_images_link">Movie images</a></li> 
    <li><a href="#" id="random_movie_link">Random movie</a></li> 
    </ul> 
</li> 
</ul> 

......和这样的CSS:

.current {background: #FFFFFF;} 

然后我用jQuery和Ajax来去我的网站的不同页面,就像这样:

<script type="text/javascript" language="javascript"> 
$.ajaxSetup({cache: false}); 

$(document).ready(function() 
{  
    $(".movies_link").click(function(event){ 
     $("#conteudo").load("applet_movies.php",{'size':"fullscreen"}); 
     $('li').removeClass('current');$('#movies_link_li').addClass('current'); 
     $('#movie_images_link').removeClass('current'); 
     }); 
}); 
</script> 

我能够设置类“当前”上点击菜单项,但在IE浏览器(版本8)所有的“礼”未被点击的'li'继承相同的类,这弄乱了菜单。其他浏览器都没有这样做。

有没有什么办法可以阻止IE将'current'类设置为点击'li'下的所有'li'?

我只是想这些其他的方法,但没有工作:

$(".movies_link").click(function(event){ 
     $("#conteudo").load("applet_movies.php",{'size':"fullscreen"}); 
     $('li').removeClass('current'); 
     $('#movies_link_li').addClass('current'); 
     $('#movie_images_link').removeClass(); //jquery remove all classes from element, didn't work. 
     $('#movies_link_li').children().removeClass('current'); //nothing... 
     $('#random_movie_link').removeClass('current'); //also nothing... 
     $('#movie_images_link').addClass('normalmenuitem'); //explicitly set another class/override - also nothing happened! :(
}); 
+0

什么是超链接标签? – 2011-03-01 21:23:14

+0

@Pipanni:你/可以/在这里发布HTML,你需要把它放在代码块中。按下“Ctrl + k”或按下“{}”按钮。 – 2011-03-01 21:27:43

回答

1

尝试增加event.stopPropagation()click处理程序。

$(".movies_link").click(function(event){ 
    event.stopPropagation(); 
    //... 
}); 
+0

谢谢,但IE仍然将这个类应用于所有'li'子链接。我会尝试其他一些事情,明天我会回来的。 – Pipanni 2011-03-01 23:31:10