Javascript can';t使用ctrl+;单击preventDefault并返回false
我在AJAX中加载每个页面,所以我在链接上使用return false在AJAX中加载它们 问题:如果这些家伙想在一个新窗口中打开它,他不能,ctrl+click也会激活ajax,我没有尝试中键,因为我没有鼠标 然后我尝试了e.preventDefault,但它仍然阻止了这个家伙在另一个选项卡中打开它 你知道我怎样才能避开这个吗 (如果您想尝试:www.p1x3L.com)Javascript can';t使用ctrl+;单击preventDefault并返回false,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在AJAX中加载每个页面,所以我在链接上使用return false在AJAX中加载它们 问题:如果这些家伙想在一个新窗口中打开它,他不能,ctrl+click也会激活ajax,我没有尝试中键,因为我没有鼠标 然后我尝试了e.preventDefault,但它仍然阻止了这个家伙在另一个选项卡中打开它 你知道我怎样才能避开这个吗 (如果您想尝试:www.p1x3L.com)e.preventDefault()将阻止浏览器跟随该链接 我想做的就是在点击发生时检查Ctrl(或Mac上的cmd)的状态
e.preventDefault()
将阻止浏览器跟随该链接
我想做的就是在点击发生时检查Ctrl(或Mac上的cmd)的状态,然后处理该操作
你需要跟踪按键的动作。考虑下面的示例,它将布尔值赋给<代码> CTRLPress < /C> >:
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;
});
$('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.
});
现在,在单击处理程序中,您只需检查ctrlPressed的状态即可:
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;
});
$('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.
});
e.preventDefault()
将阻止浏览器跟随该链接
我想做的就是在点击发生时检查Ctrl(或Mac上的cmd)的状态,然后处理该操作
你需要跟踪按键的动作。考虑下面的示例,它将布尔值赋给<代码> CTRLPress < /C> >:
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;
});
$('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.
});
现在,在单击处理程序中,您只需检查ctrlPressed的状态即可:
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;
});
$('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.
});
哇!在没有鼠标的情况下尝试使用web肯定是一种可怕的体验……我尝试了www.p1x3.com,用鼠标中键单击链接会打开一个新的选项卡。@BenM有些人总是这样做。移动设备?:)没错,但不是为了拥有一只老鼠?!;)我搬家了,只带了我的笔记本电脑,我害怕用鼠标我只能玩电子游戏。。。不要评判我:3哇。在没有鼠标的情况下尝试使用web肯定是一种可怕的体验……我尝试了www.p1x3.com,用鼠标中键单击链接会打开一个新的选项卡。@BenM有些人总是这样做。移动设备?:)没错,但不是为了拥有一只老鼠?!;)我搬家了,只带了我的笔记本电脑,我害怕用鼠标我只能玩电子游戏。。。不要评判我:3我不应该声明ctrlPressed而不使用“var”,这样我就可以全局使用它,从而在on('click')函数中使用它吗?不要弄乱窗口
对象;)我是否应该在没有“var”的情况下声明ctrlPressed,这样我就可以在on('click')函数中全局使用它?不要使窗口
对象;)