Я использую меню, которое имеет эту базовую структуру:
<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» поднажали «li» наследовать тот же класс, который портит меню.Ни один из других браузеров не делает этого.
Есть ли способ помешать IE установить текущий класс для всех "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! :(
});