如何在href之前触发onClick

时间:2013-12-04 13:45:58

标签: javascript php jquery

我正在尝试在onClick()事件中执行某些功能,并为同一元素执行href。但实际发生的情况是,当我们点击该元素时,它不会完全触发onClick()并且会转移到href链接。

如何让onClick()先完成并然后触发href

<a href="" onclick="javascript:triggerMe()">click</a>

5 个答案:

答案 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;
    }  
 }

试试这个肯定会有用