2

我只是想执行一个非常简单的 jQuery 动作。

我有两个组件:#safety并且#safety-tab a#safety需要在加载时隐藏。当单击 中的链接时#safety-tab,它hide本身slideUp#safety.

这种作品,但#safety框只是在点击时闪烁,不会保持显示:

 $(document).ready(function() {
   $("#safety-tab a").click(function() {
     $(this).hide();
     $("#safety").removeClass("hide");  
   });
   });

虽然标记是这样的:

     <div id="safety" class="hide group">
      ...
     </div><!--end #safety-->
    <div id="safety-tab">
      <a href="">...</a>
    </div><!--end #safety-tab-->

知道我做错了什么吗?

4

2 回答 2

6

添加return false;event.preventDefault()到您的点击处理程序。

$(document).ready(function() {
   $("#safety-tab a").click(function( event ) {
     $(this).hide();
     $("#safety").removeClass("hide");  
     event.preventDefault();
   });
});

这可以防止<a>元素的默认行为,即重新加载页面。

使用event.preventDefault()将保留有时需要的事件冒泡。

这样做return false;会阻止默认行为,但也会停止冒泡。

于 2010-08-04T00:11:25.400 回答
1

当您单击链接时尝试返回 false ;

 $(document).ready(function() {
   $("#safety-tab a").click(function() {
     $(this).hide();
     $("#safety").removeClass("hide");  
     return false;
   });
   });
于 2010-08-04T00:10:31.860 回答