2010-07-20 3 views
0

J'ai un problème concernant certains jQuery que j'utilise pour mettre en surbrillance un élément de menu qui a été sélectionné par un utilisateur.Mettre en surbrillance le menu à l'aide de jQuery - Ne fonctionne pas sur POST

Voici mon code (dans le Site.master):

<script type="text/javascript"> 
    $(function() { 
     $('#horizontalmenu ul li a').live('click', function() { 
      $('#horizontalmenu ul li').removeClass('current'); 
      $(this).closest('li').addClass('current'); 
     }); 
    }); 
</script> 

Cela fonctionne quand je trace à travers avec Firebug, mais la classe est changé et les rechargements de page et je perds le changement de classe. Qu'est-ce que je fais mal ici?

Répondre

0

Je pense que lorsque vous rechargez la page, le document est rechargé et vous avez perdu toutes vos dernières modifications. Si vous souhaitez mettre en surbrillance l'élément de menu, vous devez utiliser un cookie pour enregistrer l'index de l'élément de menu actuel. Mais j'ai un autre code à l'aide de mon site:

$(".menu li a").each(function() { 
$(this).removeClass(); 
if (document.location.href.indexOf($(this).attr("href")) > 0) 
{ 
    $(this).addClass("menuactive"); 
} 
}); 
0

Votre page nécessite-t-elle un rechargement? Si ce n'est pas le cas, dans votre gestionnaire d'événements, passez un objet événement et appelez le stopPropagation() pour qu'il ne recharge pas la page.

<script type="text/javascript"> 
    $(function() { 
     $('#horizontalmenu ul li a').live('click', function (event) { 
      $('#horizontalmenu ul li').removeClass('current'); 
      $(this).closest('li').addClass('current'); 
      event.stopPropagation(); 
     }); 
    }); 
</script> 
+0

test2131fdsfgsfs –

+0

fdsfdsgfgfdgfdgff –

Questions connexes