我有一个菜单,我基本上点击并隐藏当前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/如果你在点击第一个或第二个菜单项后点击about或contact菜单,你会看到发生了什么。
您也可以更改链接href.
<a href="javascript:void(0);">text</a>
虽然您的代码看起来是正确的,但您可以尝试下面这个:
$("#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
});
正如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
的评论中所说,除了总文本高度小于菜单时,这实际上非常有效。谢谢所有。