Javascript 如何有条件地阻止锚点跳转到它';s链接页

Javascript 如何有条件地阻止锚点跳转到它';s链接页,javascript,anchor,Javascript,Anchor,我有这个问题,我想有条件地阻止锚点跳转 条件跳跃 我试图在coditionFun函数中添加一些代码,有条件地阻止它跳转 function conditionFun() { var flag=false; if(flag){ console.log('you allowed anchor jump'); return true; } else { console.log('you stopped the anchor jump');re

我有这个问题,我想有条件地阻止锚点跳转

条件跳跃

我试图在coditionFun函数中添加一些代码,有条件地阻止它跳转

function conditionFun() { 
    var flag=false; 
    if(flag){ 
        console.log('you allowed anchor jump'); return true;
    } else {
        console.log('you stopped the anchor jump');return false;
    }
}

我希望得到“你停止了锚跳”并且不跳到“”,但它记录了“你停止了锚跳”并立即跳到“”,有人帮我吗?谢谢大家!

使用jQuery将是最好的选择。然后,只要锚上发生单击事件,就可以运行逻辑:

<a id="anchor" href="url">Your link<a/>

$('#anchor').click(function(e){
    var flag=false; 
    if(flag){ 
        console.log('you allowed anchor jump');
    } else {
        //stops the default anchor action from running
        e.preventDefault();
        console.log('you stopped the anchor jump');
    }
})
你的链接
$(“#锚定”)。单击(函数(e){
var标志=假;
如果(标志){
log(“您允许锚点跳转”);
}否则{
//停止运行默认的锚定操作
e、 预防默认值();
log(“您停止了锚点跳转”);
}
})

您可以定义自己的取消默认功能

<a id="alink" href="www.google.com">Google</a>

function cancelDefaultAction(e) {
    var evt = e ? e:window.event;
    if (evt.preventDefault) evt.preventDefault();
    evt.returnValue = false;
    return false;
}

function conditionFun(e) {
    var flag=false;
    if(flag){ 
        console.log('you allowed anchor jump');
        return cancelDefaultAction(e);
    } else {
        console.log('you stopped the anchor jump');
        return cancelDefaultAction(e);
    }
}

document.getElementById("alink").addEventListener("click", conditionFun);

函数cancelDefaultAction(e){
var evt=e?e:window.event;
if(evt.preventDefault)evt.preventDefault();
evt.returnValue=false;
返回false;
}
功能(e){
var标志=假;
如果(标志){
log(“您允许锚点跳转”);
返回取消默认操作(e);
}否则{
log(“您停止了锚点跳转”);
返回取消默认操作(e);
}
}
document.getElementById(“alink”).addEventListener(“单击”,conditionFun);

请向我们展示HTML代码(锚定标记及其所有属性)。