如何防止jQuery中的函数.fadein()将用户发送到页面顶部?

时间:2013-04-13 19:29:14

标签: jquery joomla fadein page-jump

我有一个菜单,我基本上点击并隐藏当前的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/ 如果您在点击第一个或第二个菜单项后单击或联系菜单,您将看到正在发生的事情。

3 个答案:

答案 0 :(得分:1)

您也可以更改链接href。

<a href="javascript:void(0);">text</a>

答案 1 :(得分: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
});

答案 2 :(得分: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的评论中所说,除了总文本高度小于菜单之外,这实际上非常好。谢谢大家。