0

jQuery の slideDown 効果が機能しません。下にスライドしてパネルを表示しようとしています。代わりに、show() メソッドのように表示されるだけですが、Firefox では表示されません。

jQuery:

$("#linkHBE").click(function(){
    if ($(".panel").is(":hidden")) {
        $(".panel").show("slow");
    } 
    else 
        $(".panel").hide("slow");
});

HTML:

 <div class="panel"></div>

 <ul id="grid">
      <li class="web"><a id="linkHBE"><img  width="296px" height="196px"></a></li>
      <li class="graphic"><img width="296px" height="196px"></li>
      <li class="web"><img width="296px" height="196px"></li>
 </ul>   
4

2 に答える 2

2
$("#linkHBE").click(function(e) {
    e.preventDefault();
    $('.panel').toggle(1000); // fadeToggle() or slideToggle() are also available
});

デモ


ここでe.preventDefault()は、ページのリロードがアンカータグをクリックするのを防ぐためのものです。jQuery.toggle()が表示と非表示を行います。したがって、追加のチェックは必要ありません。


関連参照:

于 2012-08-08T18:46:16.827 に答える
0

コードが機能しない理由は、ハンドラーがデフォルトのイベントをキャンセルしていないためです。そのため、ブラウザーはリンクをたどっています。これを試して:

$("#linkHBE").click(function(e){
    $(".panel").slideToggle("slow");
    e.preventDefault();
});
于 2012-08-08T18:49:31.047 に答える