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

发布于 2024-10-14 07:14:29 字数 1738 浏览 5 评论 0原文

有谁知道为什么当选择一个 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>

Does anybody know why it's jumping to the top when one of the bin <div>s is selected? I've tried everything, and it just won't work (in Chrome, at least).

Here's my script:

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

Here's the 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夕色琉璃 2024-10-21 07:14:29
<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 行!

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

and then in the click handler:

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

Your page jumps to the top because your code - href="javascript: return null;" - fails to disable the anchors. Don't put JavaScript code inside the href attribute!


Consider this...

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');
});

Note that I shortened your 24 lines of code to just 4 lines!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文