3
jQuery("#na").mouseover(function()
{
    jQuery("#na").animate({width:"325px", height:"203px", left:"-40px", top:"-25px"}, 200)
});

jQuery("#na").mouseout(function()
{
    jQuery("#na").stop()
    jQuery("#na").animate({width:"244px",height:"152px", left:0, top:0}, 200)
});

jQuery("#na").click(function()
{
    jQuery("#na").hide()
    jQuery("#back").show()
});

それが私のコードです。問題は、クリックイベントがトリガーされたときにすべて問題なく、消えますが、マウスを動かした瞬間に再び現れます。問題はマウスアウトイベントがトリガーされていることだと思いましたが、私の人生ではそれを修正する方法がわかりません。何か案は?

4

2 に答える 2

0
jQuery("#na").click(function(e)
{   
    e.stopPropagation();
    jQuery("#na").hide()
    jQuery("#back").show()
});

これが機能するかどうかはわかりません..理論的には、これはmous entの伝播を停止するはずですが、伝播されているクリックイベントのみを停止するかどうかはわかりません!

于 2011-01-19T10:13:36.193 に答える
0

mouseout メソッド内で、「na」が表示されているか非表示になっているかを確認します。非表示の場合は、何もしないでください。それ以外の場合は、アニメーションを実行できます。

編集:

次のような mouseout メソッドを試してください。

jQuery("#na").mouseout(function(){
    if(jQuery("#na").is(":visible")){
       jQuery("#na").stop()
       jQuery("#na").animate({width:"244px",height:"152px", left:0, top:0}, 200)
    }
});
于 2011-01-19T08:30:21.740 に答える