为Ctrl键而停止向Chrome浏览器冒泡的事件

问题描述 投票:2回答:1

(写入this script时遇到]

相关代码:

window.keyPressEventLambda=function(key,callback){ //just a lambda function wrapper so I can generate handlers on the fly
return function (zEvent) {
        if (zEvent.altKey  && ( zEvent.which == key.charCodeAt(0)||zEvent.which == key.toUpperCase().charCodeAt(0))) {
            callback(this.id);
            return false;
        }
        return true;
}
}

用例:

$("textarea").live("keydown",keyPressEventLambda("C",function(id){/*blah blah blah */})

因此,如果我使用Alt-C,则回调函数将自行运行。

现在,由于return false;,冒泡被抑制了,并且页面本身内的所有内容都很方便。

但是,Chrome(在Windows上为20.0.1128.0或19.0.1084.41,但仍将alt键捕获为Chrome浏览器快捷方式,并且,由于Alt-C实际上不存在快捷方式,因此失败并发出令人讨厌的“砰”声。

对于Ctrl-快捷键来说很好用,但是我不想使用这些,因为大多数Ctrl-快捷键都是采用的。

有什么方法可以防止浏览器对我的脚本感到生气吗?

javascript google-chrome dom-events event-bubbling
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.