如何有条件地停止锚点跳转到它的链接页面

时间:2014-04-08 07:33:19

标签: 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');return false;
    }
}

我希望得到#34;你停止了跳跃"并且不要跳到" http://www.google.com.hk",但它记录了#34;你停止了跳跃"并立即跳到" http://www.google.com.hk",有人帮我这个吗?谢谢!

2 个答案:

答案 0 :(得分:0)

使用jQuery是你最好的选择。然后,只要在锚点上发生click事件,您就可以运行逻辑:

<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');
    }
})

答案 1 :(得分:0)

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

<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);