[英]How to trigger onClick before href
我试图在onClick()
事件中执行一些功能,并为同一元素执行href
。 但实际上发生的是它不完全触发onClick()
,当我们点击该元素时它会转移到href
链接。
如何让onClick()
先完成并触发href
。
<a href="" onclick="javascript:triggerMe()">click</a>
据我所知,你不想去其他页面,所以使用return false,如下所示:
<a href="" onclick="javascript:triggerMe();return false;">click</a>
我最好的建议是尝试使用如下表格 :
首先,将您的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>
动作是你想要的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毫秒后,调用hrefCall():
function hrefCall() {
document.getElementById('GoToHref').click();
}
然后单击窗体内的显示:无按钮,触发窗体的动作,将您带到所需的href。 如果您要链接到您网站上的其他页面,那么它的效果非常好。 如果要链接到外部页面,则需要在表单中添加目标:
<form action="http://www.myhref.com" target="_blank"><button id="GoToHref"
style="display:none"></button></form>
如果要中止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>
<a onclick="javascript:triggerMe()" href="">click</a>
它会工作
<a href="" onclick="return triggerme()" >click</a>
function triggerme(e){
if(condition is true){
return true;
} else {
e.preventDefault();
return false;
}
}
试试这个肯定会奏效
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.