我已经构建了一个小应用程序,通过drop in div将一些用户生成的文本粘贴到textarea中。这是通过.click函数和.keypress函数(使用Enter键)完成的。
有没有办法让.keypress函数只在显示div时触发?
演示:http://jsfiddle.net/Mobius1/Sjyeh/2/
修改
现在正在工作!
更新了Rory McCrossan的意见:http://jsfiddle.net/Mobius1/Sjyeh/8/
答案 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);
}
});
答案 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);
}
}
});