2012-05-11 8 views
2

私は「ホバーを覗く」スクリプトをやっていて、教祖が私にある指導を与えることを望んでいました。私が言うことができるどのようにしてjquery 'と対話した場合'?

$(".peek").mouseenter(function() { 
    var $peek = $("#peek"); 
    if ($peek.data("active")) { return; } 
    $peek.show().data("active", true); 
    setTimeout(function() { 
     $peek.hide().data("active", false); 
    }, 1000); 
}); 

私の「コード・話す」を最初のコードを読んで、としてください:「$覗くが活性化されている場合か、$ PEEKが隠されている場合は、」この()

を何

.peekにカーソルを置くと、#peekを1秒間表示し、#peekを見た場合は、.peekでマウスを動かす機能を無効にして、#peekを見ることができなくなります。

答えて

1
$(".peek").mouseenter(function() { 
    var $peek = $("#peek"); 
    if (typeof $peek.data("active") !== "undefined") return; 

    $peek.show().data("active", true); 
    setTimeout(function() { 
     $peek.hide().data("active", false); 
    }, 1000); 
}); 

あなただけそれがundefinedであれば、あなたのコードの残りの部分を実行する一方で、if ($peek.data("active"))は、falseまたはundefinedのいずれかを取得します。

+0

...これは、それは寝る時間だ意味を推測最初のものの後ろに移動します。 –

+0

@Davidそれはまさに私のコードがしていることです。 Uhm。もちろん、 '==='を '!=='に変更した後です。 – Tomalak

+0

もちろん、それは私をそこから投げ落とした '==='でした。しかし、私はそれを「偽」に戻すことが本当の誤りであると想像します。それがなければ元の状態は正常です。 –

1

hideの場合、activeをfalseに設定しています。あなたがそれをしないと、それは後続のホバリングで表示する前にちょうどreturnだろうか?あなたのコードで

+0

ヘクタール-おかげで、私はここにactive'は* * - - これまでに活性化されており、コードは任意のためshow' '前に終了する必要があることを意味し、'想像 – RooWM

関連する問題