当我选择javascript元素时,页面跳转到顶部?

时间:2011-01-26 19:17:35

标签: jquery slidedown

有人知道为什么当选择其中一个bin <div>时它会跳到顶部吗?我已经尝试了所有东西,但它不起作用(至少在Chrome中)。

这是我的剧本:

<script>
 $(document).ready(function () {
        $("#bin1").click(function(){ 
           $("#div1").slideDown("1000"); 
           $("#div3").hide(); 
           $("#div2").hide();  
           $("#div4").hide();
        });
       $("#bin2").click(function(){ 
           $("#div2").slideDown("1000"); 
           $("#div3").hide(); 
           $("#div1").hide();  
           $("#div4").hide();
        });
      $("#bin3").click(function(){ 
          $("#div3").slideDown("1000"); 
           $("#div1").hide(); 
           $("#div2").hide();  
           $("#div4").hide();
       });
     $("#bin4").click(function(){ 
          $("#div4").slideDown("slow"); 
          $("#div3").hide(); 
          $("#div2").hide();  
          $("#div1").hide();

          return false;
      });
  });
 </script>

这是HTML:

<div id="binheader" style="padding-top:20px;">
  <a href="javascript: return null;" id="bin1">
    <img src="img/black bin name.png"
    style="width:200px; float:left;" />
  </a>
  <a href="javascript: return null;" id="bin2">
    <img src="img/green bin name.png"
    style="padding-left:33px; width:200px; float:left;" />
  </a>
  <a href="javascript: return null;" id="bin3">
    <img src="img/yellow box name.png"
    style="padding-left: 34px; width:200px; float:left;" />
  </a>
  <a href="javascript: return null;" id="bin4">
    <img src="img/green box name.png"
    style="padding-left:33px; width:200px; float:left;" />
  </a>
</div>

1 个答案:

答案 0 :(得分:7)

<a id="bin1" href="#"> 

然后在点击处理程序中:

$('#bin1').click(function() {
    // do stuff
    return false;
}); 

您的页面跳转到顶部,因为您的代码 - href="javascript: return null;" - 无法禁用锚点。不要将JavaScript代码放在href属性中!


考虑一下......

HTML:

<ul id="links">
    <li> <a href="#"> <img src="..."> </a> </li>
    <li> <a href="#"> <img src="..."> </a> </li>
    <li> <a href="#"> <img src="..."> </a> </li>
</ul>

<ul id="slides">
    <li> ... </li>
    <li> ... </li>
    <li> ... </li>
</ul>

JavaScript的:

$('#links a').click(function() {
   var i = $(this).parent().index();
   $('#slides').children().hide().eq(i).slideDown('slow');
});

请注意,我将您的24行代码缩短为4行!