繁体   English   中英

如何在href之前触发onClick

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM