1

我已经构建了一个小应用程序,它通过 div 的下拉将一些用户生成的文本粘贴到 textarea 中。这是通过 .click 函数和 .keypress 函数(使用 Enter 键)完成的。

有没有办法让 .keypress 函数仅在显示 div 时触发?

演示: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 回答