隐藏元素按Esc

时间:2014-12-05 01:20:01

标签: javascript jquery html dom hide

当我按 Esc 键时,此代码不会隐藏应该隐藏的框div

function Boxup(elementN, event){
    $("#"+elementN).css({
        "display":"block",
        "top":event.pageY+"px" ,
        "left":event.pageX+"px"    
    })
}
function hideCurrentPopup(ele){
    $(ele).parent().hide();
}

    $(this).keyup(function(event) {
        if (event.which == 27) { 
            disablePopup();  
        }   
    });

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

从你的代码中我无法确切地说出this在这一行中指的是什么:

$(this).keyup(function(event) {

因为this引用"textarea""input"它会触发事件如果该元素具有焦点 ,否则您正在寻找keyup

注册的document个活动

但是这是你可以尝试的。

function Boxup(elementN, event){
    $("#"+elementN).css({
        display : "block",
        top  : event.pageY , // px are not needed as they are default unit in jQ
        left : event.pageX    
    })
}

function hideCurrentPopup(ele){ // note your function name and the argument! 
    $(ele).parent().hide();     // (do you need .parent()? I don't know
}                               // without seeing any HTML sample)

$(document).keyup(function(event) { // document is probably the selector you want
    if (event.which == 27) { 
        hideCurrentPopup("#hereYourPopupID");  // try alike
    }   
});

PS:确保使用$(some Selector here).keyup(function(event) {,您无法阻止任何keyup事件冒泡DOM树到达documentElement