我已经构建了一个小应用程序,它通过 div 的下拉将一些用户生成的文本粘贴到 textarea 中。这是通过 .click 函数和 .keypress 函数(使用 Enter 键)完成的。
有没有办法让 .keypress 函数仅在显示 div 时触发?
演示:http: //jsfiddle.net/Mobius1/Sjyeh/2/
编辑:
工作中!
更新了 Rory McCrossan 的输入:http: //jsfiddle.net/Mobius1/Sjyeh/8/
我已经构建了一个小应用程序,它通过 div 的下拉将一些用户生成的文本粘贴到 textarea 中。这是通过 .click 函数和 .keypress 函数(使用 Enter 键)完成的。
有没有办法让 .keypress 函数仅在显示 div 时触发?
演示:http: //jsfiddle.net/Mobius1/Sjyeh/2/
编辑:
工作中!
更新了 Rory McCrossan 的输入:http: //jsfiddle.net/Mobius1/Sjyeh/8/
如果我理解了您的问题,您可以检查.slidebox
div 是否在keypress()
处理程序中可见:
$(document).keypress(function(e) {
if (e.keyCode == 13 && $(".slideBox").is(":visible")) {
$("#dimBackgrnd").hide().fadeOut("slow");
$("#slide").hide("drop", {
direction: "down"
}, 500);
}
});
您可以检查该元素是否在事件处理程序中可见:
if ($(this).is(':visible')) {
doMyAction();
}
可见性是您正在寻找的答案。我已经更新了您的jsfiddle以显示一种可能性。这是代码:
$(document).keypress(function(e) {
if ($("#slide:visible").size() > 0) {
if (e.keyCode == 13) {
$("#dimBackgrnd").hide().fadeOut("slow");
$("#slide").hide("drop", {
direction: "down"
}, 500);
}
}
});