0

我有一个菜单,我基本上单击并隐藏当前 p 并淡入相应的按钮文本。问题是,它使我的页面从字面上跳到顶部。

这是菜单的html:

<li class="sub"><a href="#" class="sub_ha1"> 
   › Instalação/Configuração de Componentes</a>
</li>

这是相应文本的html

<div id="sub_ha1" class="text" style="display:block;">
  <img src="../images/serv/ha1.jpg" alt="">
  <h1> Instalação/Configuração de Componentes - 35€ </h1>

  <p>Chamamos de hardware a todos os componentes ..... </p>
</div>

这是jQuery:

$("#navigation a.sub_ha1").click(function () {
$(".text").hide();
$("#sub_ha1").fadeIn();
return false;
});

我想要的是一种防止它的方法,因为它只是在通过几个菜单后让它变得烦人。

谢谢

编辑: http: //jsfiddle.net/M2AE6/ 如果您在单击第一个或第二个菜单项后单击关于或联系菜单,您将看到发生了什么。

4

3 回答 3

1

您还可以更改链接href。

<a href="javascript:void(0);">text</a>
于 2013-04-13T19:53:07.240 回答
0

正如 tcovo 在对主要问题的评论中所说what if you use function() { $(".text").not($("#sub_ha1").fadeIn()).hide(); return false; } so that #sub_ha1 gets shown (initially with opacity 0) before the other .text are hidden? – tcovo,这实际上效果非常好,除非总文本高度小于菜单。谢谢大家。

于 2013-04-13T22:22:30.013 回答
0

尽管您的代码看起来正确,但您可以尝试以下代码:

$("#navigation a").click(function(e){
   e.preventDefault(); // <----stop it here
   $(".text").hide();
   $("#"+this.className).fadeIn(); // <--this will get you the specific div you want to fade In.
   // $("[id='"+this.className + "']").fadeIn();// <---another way to do it
});
于 2013-04-13T19:37:25.933 回答