jQuery - 在单击+ ctrl按下时覆盖preventDefault()

use*_*007 6 jquery

preventDefault()用来防止一个锚点按钮的默认行为,但是我想让这个按钮在用键盘ctrl按钮点击时做默认行为,

JS代码

$('a').click(function(e){
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

HTML代码

<a href="http://google.com">Go to the best search engine</a>
Run Code Online (Sandbox Code Playgroud)

这是游乐场:http://jsfiddle.net/sKDuA/

and*_*ter 14

$('a').click(function(e) {
    if (!e.ctrlKey) {
        e.preventDefault();
    }
});
Run Code Online (Sandbox Code Playgroud)

其他intertesting选项:

  • e.altKey- 检查是否Alt按下了
  • e.shiftKey- 检查是否Shift按下了
  • e.button - 区分鼠标中间点击的右侧,左侧
  • e.which - 与上面相同,但也适用于键盘
  • 完整文档在这里

还有一点需要注意,因为你对文档的询问似乎真的很感兴趣;)

可以在jsfiddle中调试 - 只需debugger输入你的js代码并像往常一样运行.您的浏览器(我使用Chrome)将在调试行停止,您可以检查e手表中的对象:

在此输入图像描述