在链接点击中按住CTRL键

时间:2012-10-22 09:17:20

标签: javascript jquery

我要求阻止我的应用程序中的链接通过CTRL键溢出到新窗口/选项卡。我现在在页面中有以下内容:

        $(document).click(function(e)
        {
            if (e.ctrlKey)
            {
                return (false);
            }
        });

这似乎对DIV点击工作正常,但链接点击完全被忽略。我想看看我是否可以单独使用CTRL按键,并使其看起来像简单的点击。那可能吗?一种强制事件keyCode为ctrl单独为零?

2 个答案:

答案 0 :(得分:2)

您可以使用:

$('a').click(function(e) {
    if(e.ctrlKey) return false;
});

选中演示http://jsfiddle.net/gTG6Q/

注意:用户仍然可以在新标签页中右键单击并打开链接。为了防止这种情况,您还需要否定contextmenu事件。

答案 1 :(得分:1)

通过“文档”,以及稍后可以通过AJAX添加的元素,使用这个简单的单行: - 复制代码

$(document).on("click", "*", function(e)  { 
    if (e.ctrlKey) return false; 
});

如果您的jQuery版本低于v1.7,则使用.live()而不是.on()(只需将单词从“on”更改为“live”)。