天天看点

<a>标签href与js(onclick)的触发顺序

在前端标签

<a>

的执行过程中遇到问题,发现了

href

js(onclick)

的触发是存在先后顺序的。

优先级:

onclik

>

href

如果不需要

href

的跳转可以使用

event.preventDefault()

方法置于

onclick

函数中。

如果只是把

<a>

作为按钮使用可以使用

href="javascript:void(0);" target="_blank" rel="external nofollow"

<a href="index" onclick="toIndex(this)">
<script type="text/javascript">
    function toIndex(e){
        if(e.href=="index"){
            ...
            retrun true;
        }else{
            ...
            retrun false;
        }
    }
</script>
           

在上述例子中

toIndex()

函数将先被执行,需要注意的是:当函数返回

false

时,

href

将不再被执行;当函数返回

true

或者在函数中出现错误时,

href

将继续被执行。

参考:

  • <a>

    标签href跟onclick事件的触发顺序
  • <a>

    标签的href和onclick属性