jQuery Keypress冲突

时间:2012-04-30 14:23:02

标签: jquery keypress conflict

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

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

演示:http://jsfiddle.net/Mobius1/Sjyeh/2/


修改

现在正在工作!

更新了Rory McCrossan的意见:http://jsfiddle.net/Mobius1/Sjyeh/8/

3 个答案:

答案 0 :(得分:1)

如果我理解了您的问题,您只需检查.slidebox处理器中是否显示keypress() div:

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

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

Updated fiddle

答案 1 :(得分:0)

您可以检查元素在事件处理程序中是否可见:

if ($(this).is(':visible')) {
    doMyAction();
}

答案 2 :(得分: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);
        }
    }
});