1

divのドロップを介して、ユーザーが生成したテキストをテキストエリアに貼り付ける小さなアプリを作成しました。これは、.click関数と.keypress関数(Enterキーを使用)を使用して実行されます。

divが表示されているときにのみ.keypress関数を起動する方法はありますか?

デモ: http: //jsfiddle.net/Mobius1/Sjyeh/2/


編集:

今働いています!

Rory McCrossanの入力で更新:http://jsfiddle.net/Mobius1/Sjyeh/8/

4

3 に答える 3

1

私があなたの質問を理解した場合は、.slideboxdivがkeypress()ハンドラーに表示されているかどうかを確認できます。

$(document).keypress(function(e) {
    if (e.keyCode == 13 && $(".slideBox").is(":visible")) {
        $("#dimBackgrnd").hide().fadeOut("slow");

        $("#slide").hide("drop", {
            direction: "down"
        }, 500);
    }
});

更新されたフィドル

于 2012-04-30T14:26:33.687 に答える
0

要素がイベントハンドラーに表示されているかどうかを確認できます。

if ($(this).is(':visible')) {
    doMyAction();
}
于 2012-04-30T14:25:24.243 に答える
0

可視性はあなたが探している答えです。可能性を表示するためにjsfiddleを更新しました。コードは次のとおりです。

$(document).keypress(function(e) {
    if ($("#slide:visible").size() > 0) {
        if (e.keyCode == 13) {

            $("#dimBackgrnd").hide().fadeOut("slow");

            $("#slide").hide("drop", {
                direction: "down"
            }, 500);
        }
    }
});
于 2012-04-30T14:28:24.260 に答える