gpt4 book ai didi

javascript - 不能将 ctrl + click 与 preventDefault 一起使用并返回 false

转载 作者:行者123 更新时间:2023-11-30 10:19:52 29 4
gpt4 key购买 nike

我在 AJAX 中加载每个页面,因此我在我的链接上使用 return false 以在 ajax 中加载它们。

问题:如果人们想在新窗口中打开它,他不能​​,ctrl+click 也会激活 ajax,我没有尝试过中间按钮,因为我没有鼠标。

然后我尝试了 e.preventDefault,但它仍然阻止该家伙在另一个选项卡中打开它。

知道如何规避这个问题吗?

(如果你想尝试:www.p1x3L.com)

最佳答案

e.preventDefault() 将完全阻止浏览器访问该链接。

我想做的只是在点击发生时检查 Ctrl(或 Mac 上的 cmd)的状态,然后处理操作.

您需要跟踪按键操作。考虑以下示例,它为 ctrlPressed 分配了一个 bool 值:

var ctrlPressed = false;

$(window).on('keydown', function(e) {
if (e.metaKey || e.ctrlKey) ctrlPressed = true;
}).on('keyup', function(e) {
if (e.metaKey || e.ctrlKey) ctrlPressed = false;
});

现在在您的 click 处理程序中,您可以检查 ctrlPressed 的状态:

$('a').on('click', function(e) {  
if(ctrlPressed)
{
return true;
}

// Handle your AJAX here. No need for an else{} block
// since return true will already have executed.
});

关于javascript - 不能将 ctrl + click 与 preventDefault 一起使用并返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21877478/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com