1


0

指定された領域外のjQueryクリック検出問題

皆さん、OK、だから、ホームページ(http://www.marioplanet.com)にjPlayer jQueryプラグインプレイリストが隠されています。

現在、デフォルトでは非表示になっており、ヘッダーの右上隅にある「Music」というラベルの付いた画像をクリックしたときにのみアクティブになるはずです

.

これはうまく機能し、エンドユーザーが画像をクリックすると、素敵で滑らかなスライドが表示されます

要素とそれが明らかにされています。

今、すべてが保持されます。

エンドユーザーが音楽画像以外の場所をクリックするまで、「

要素は再びスライドしてトグルし、消えます。

唯一の問題は、エンドユーザーが音楽画像をもう一度クリックしたときです。私の知る限り、スライドトグルが2回スライドするからです。

それは間違いなく私たちが望むものではありません。

そこで、Magnarの役立つ投稿によって適合されたコードを以下に示します。

$('#text_music').click(function() {
    $('#jplayer').slideToggle(500, function() {
        $("body").click(function (event) {
            var outside = $(event.originalTarget).parents("#popup").length === 0;
            if (outside) {
                $("#jplayer").slideToggle(500);
                $("body").unbind("click");
            }
        });
    });
});

「#text_music」は「Music」を読んでいる私の画像であり、「#jplayer」は「

jPlayerプラグインを含む

したがって、私が試したいことは、上記のコードで「var outside」を宣言するのと同じように変数を宣言することです。

は既に表示されています。

ただし、この変数の意味を理解するには少し助けが必要です。

誰もが知恵の言葉を提供したいですか?

:) Thanks!

1 Answer


2


特定の要素以外のイベントを検出するには、http://benalman.com/projects/jquery-outside-events-plugin/ [jQuery outside events plugin]をご覧ください。