我正在尝试在onClick()
事件中执行某些功能,并为同一元素执行href
。但实际发生的情况是,当我们点击该元素时,它不会完全触发onClick()
并且会转移到href
链接。
如何让onClick()
先完成并然后触发href
。
<a href="" onclick="javascript:triggerMe()">click</a>
答案 0 :(得分:4)
据我所知,你不想去其他页面,所以请使用return false,如下所示:
<a href="" onclick="javascript:triggerMe();return false;">click</a>
答案 1 :(得分:2)
我最好的建议是尝试使用表单,如下所示:
首先,将您的href更改为:
<a href="#null" onclick="javascript:triggerMe()">click</a>
并在HTML代码中的某处添加一个带有display = none按钮的表单:
<form action="http://www.myhref.com"><button id="GoToHref" style="display:none"></button></form>
其中action是您想要的href。 onclick事件调用triggerMe()函数。更改您的功能包括:
function triggerMe() {
var DelayhrefCall;
//include all code for what triggerMe() must do, then as the last line add
DelayhrefCall = window.setTimeout(hrefCall, 500);
//500 millisecond delay, change time as desired
}
延迟500 ms后,调用hrefCall():
function hrefCall() {
document.getElementById('GoToHref').click();
}
然后单击表单内的显示:无按钮,触发表单的操作,将您带到所需的href。如果您要链接到您网站上的其他页面,那么它的效果非常好。如果要链接到外部页面,则需要在表单中添加目标:
<form action="http://www.myhref.com" target="_blank"><button id="GoToHref"
style="display:none"></button></form>
答案 2 :(得分:2)
如果要中止href的效果,则必须返回false值。尝试使用此代码。
<a href="yourLink.com" title="my link" onclick="return triggerMe();"> Click me </a>
Javascript部分
<script>
function triggerMe()
{
if (condition)
{
//do stuffs
//This will tell browser to follow the link.
return true;
}
else
{
//do stuffs
//This will cancel the default behaviour of the browser.
//Abort the effect of href
return false;
}
}
</script>
答案 3 :(得分:0)
<a onclick="javascript:triggerMe()" href="">click</a>
它将起作用
答案 4 :(得分:-5)
<a href="" onclick="return triggerme()" >click</a>
function triggerme(e){
if(condition is true){
return true;
} else {
e.preventDefault();
return false;
}
}
试试这个肯定会有用