李里面UL内里
问题描述:
我使用具有这种基本结构的菜单:李里面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! :(
});
答
尝试增加event.stopPropagation()
您click
处理程序。
$(".movies_link").click(function(event){
event.stopPropagation();
//...
});
+0
谢谢,但IE仍然将这个类应用于所有'li'子链接。我会尝试其他一些事情,明天我会回来的。 – Pipanni 2011-03-01 23:31:10
什么是超链接标签? – 2011-03-01 21:23:14
这是一个伪装成的标签。否则,垃圾邮件保护不会让我发布我的问题! :) – Pipanni 2011-03-01 21:25:35
@Pipanni:你/可以/在这里发布HTML,你需要把它放在代码块中。按下“Ctrl + k”或按下“{}”按钮。 – 2011-03-01 21:27:43