1

私のjqueryコード:

$(document).ready(function() {  
    $("#adminbar").mouseover(function () {  
        $(this).addClass("adm_bar").slideDown("slow");  
    });
    $("#adminbar").mouseout(function () {  
        $(this).removeClass("adm_bar").slideUp("slow");  
    });  
});  

ただし、#adminbarを使用してdivにカーソルを合わせると、クラスが1回だけ追加/削除されます。もう一度実行しようとすると、機能しません。何度でもホバリングできるようにしてほしい。
どうしたの?

編集:ページの上部にある私のウェブサイト(作成中)

4

3 に答える 3

2

slideUpを使用すると、jQueryは自動的に表示をnoneに設定するように見えます。そのため、「存在しない」要素をホバーすることはできません。要素はまだ存在しますが、「ホバー可能」ではありません。

slideUpの後に、表示: "block"プロパティと可視性:"hidden"を追加してみてください。

そのように要素をホバーできるはずです。

于 2012-07-07T14:09:38.637 に答える
1

jQuery .hover()で試すことができます:

$("#adminbar").hover(function() {
  $(this).addClass("adm_bar").slideDown("slow", function() {
    $(this).css({
        visibility : 'visible',
        display: 'block'
    })
  });  
},
function() {
  $(this).removeClass("adm_bar").slideUp("slow", function() {
    $(this).css({
        visibility : 'hidden',
        display: 'block'
    })
  }); 

visibility: hidden/visibleアニメーションが完了した後にする必要があります。アニメーションの後、非表示にするとdisplay: none、結果として使用されたため、次のホバーイベントをキャッチできません。したがって、コードも機能しています。

于 2012-07-07T14:02:10.027 に答える
0

関数を使用し.hover()ます。

$("#adminbar").hover(function() {
    $(this).addClass("adm_bar").slideDown("slow");  
},
function() {
    $(this).removeClass("adm_bar").slideUp("slow");  
});
于 2012-07-07T14:03:33.163 に答える