2

根据一些问题,我发现可以知道如何防止组合键,但我想定义一个短键......

一种方法是在 jQuery 中使用bind()函数,问题是,keys 默认工作仍在工作。IE:Ctrl+s = savepage

有什么解决办法吗?

4

2 回答 2

1

您链接的问题并不完全是您要寻找的问题,但可以使用相同的概念。这是仅监听 Ctrl+s 的 jQuery 等效项

$(document).on("keydown",function(e){
    if (e.originalEvent.ctrlKey && e.which == 83/*"s"*/) {
        setTimeout(function(){ //Fix for firefox. Ref: http://stackoverflow.com/questions/14860759/cant-override-ctrls-in-firefox-using-jquery-hotkeys
            // do save stuff...
            alert("Saved!"); // if you remove alert, you can remove setTimeout
        },0);
        return false;
    }
});

http://jsfiddle.net/SEQVD/3/

在 Chrome、Firefox 和 IE 中测试。

于 2013-03-04T16:04:31.327 回答
0

请确保您绑定到快捷方式的事件包含 preventDefault。在 jquery 中,这应该如下所示:

function event(e) {
  e.preventDefault();
}

使用其他框架,这可能会有所不同,例如e.stop()e.stopEvent()

于 2013-03-04T15:49:39.617 回答