ли внутри ул внутри ли - PullRequest
       12

ли внутри ул внутри ли

0 голосов
/ 02 марта 2011

Я использую меню, которое имеет эту базовую структуру:

<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! :(
});

1 Ответ

1 голос
/ 02 марта 2011

Попробуйте добавить event.stopPropagation() в обработчик click.

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