1

有人知道为什么<div>选择 bin 之一时它会跳到顶部吗?我已经尝试了所有方法,但它不起作用(至少在 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>
4

1 回答 1

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 行!

于 2011-01-26T19:20:16.837 回答