我有以下代码隐藏我的div(实时搜索结果)当鼠标在div外部被点击但我不能在按下退出键时包含执行相同操作的OR功能(隐藏div)。任何帮助都非常值得赞赏。此外,鼠标单击输出的原始代码来自我在Stackoverflow上获得的另一个线程。或者功能让我很难过。
var mouse_is_inside = false;
$(document).ready(function()
{
$('.form_content').hover(function(){
mouse_is_inside=true;
}, function(){
mouse_is_inside=false;
});
$("body").mouseup(function(){
if $('#display').hide();
});
});
答案 0 :(得分:5)
这会在按下escape时隐藏#display:
$(document).keyup(function(event) {
if(event.which === 27) {
$('#display').hide();
}
});
示例: http://jsfiddle.net/nsufH/
您还可以尝试使用窗口而不是文档:
$(window).keyup(function(event) {
if(event.which === 27) {
$('#display').hide();
}
});
或尝试使用直播:
$(document).live('keyup', function(event){
if(event.which === 27) {
$('#display').hide();
}
});
答案 1 :(得分:1)
基本上你需要监控KeyCode并根据它采取行动:
$(document).keyup(function(e) {
if (e.keyCode == 27) { $('#display').hide() } // esc
});
答案 2 :(得分:0)
$(document).ready(function() {
$(document).on('mouseup keyup', function(e){
var e = e || event,
code = (e.keyCode ? e.keyCode : e.which),
target = e.srcElement || e.target;
if (target.className != 'form_content' || code==27) {
$('#display').hide();
}
});
});
答案 3 :(得分:0)
这是jsfiddle在mouseout上隐藏div并按ESC键: http://jsfiddle.net/jrm2k6/q2kNX/
当然,在将其作为自己的源代码进行调整的过程中可能会有一些事情要做。