Javascript 如何有条件地阻止锚点跳转到它';s链接页
我有这个问题,我想有条件地阻止锚点跳转 条件跳跃 我试图在coditionFun函数中添加一些代码,有条件地阻止它跳转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
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代码(锚定标记及其所有属性)。