隐藏鼠标上的div单击或退出关键字按

时间:2012-01-21 19:19:00

标签: javascript jquery

我有以下代码隐藏我的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();
    });
});

4 个答案:

答案 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/

当然,在将其作为自己的源代码进行调整的过程中可能会有一些事情要做。