2

非常に単純なjQueryアクションを実行しようとしています。

と の 2 つのコンポーネントが#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;orevent.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 に答える