可以将keypress绑定到div?

时间:2011-03-27 03:36:13

标签: jquery jquery-plugins

我正在尝试使用this插件(颜色选择器)。我不喜欢的是,我发现很难弄清楚如何关闭颜色对话框(如果它弹出 - 请参阅带有文本框的示例)。

我很想拥有它,以便在esc上关闭对话框。我想我需要将它绑定到div但是我无法让它工作,所以我不确定它是否可行。

2 个答案:

答案 0 :(得分:2)

var showing = false;

$('#colorSelector').ColorPicker({
    onShow: function (colpkr) {
        showing = true;
        return false;
    },
    onHide: function (colpkr) {
        showing = false;
        return false;
    }
});

$("body").keyup(function(e){
    if(e.keyCode == 27 && showing) $('#colorSelector').click();
    //Click it again to slide up back up, right?
});

那应该有用。我唯一不确定的是$('#colorSelector').click();,你可能需要将其更改为其他内容,如果这不会使其重新滑回。

答案 1 :(得分:1)

var listen_event = true;
$(document).bind("keydown", function(e){
    setTimeout(function(){
        if(listen_event){
            // Listen any key you need on key down
        }
    },1);
});

$(“body”)并不总是有效,特别是在ajax html上,所以最好使用$(文档)

超时1将帮助您检查通用js / html事件后的密钥或任何内容

希望这会有所帮助