超链接单击后如何防止重定向?

gst*_*low 5 html javascript onclick href hyperlink

我有以下html + js代码:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>

<a href="#" id=key onclick="func(0)">foo</a>

</body>

<script type="text/javascript">
function func(k){
    alert(1);
    return false;
}   
</script>
</html>
Run Code Online (Sandbox Code Playgroud)

您能解释一下如何重构以下代码,这些代码在单击href代码后func执行但#没有添加到URL中,并且不应重新加载页面吗?

qwe*_*ymk 6

将其更改为:

                            vvvvvvv
<a href="#" id=key onclick="return func(0)">foo</a>
Run Code Online (Sandbox Code Playgroud)

  • 因为`func(0)` 返回false 所以`onlick="func(0)"` 是一样的`onclick="false"` 和`onclick="return func(0)"` 是一样的`onclick= “返回假”` (2认同)

web*_*eno 6

使用javascript:void(0);代替#如下:

<a href="javascript:void(0);" id=key onclick="func(0)">foo</a>
Run Code Online (Sandbox Code Playgroud)


Ben*_*ull 5

您可以简单地删除 href 属性:

<a id='key' onclick="func(0)">foo</a>
Run Code Online (Sandbox Code Playgroud)