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

ef1yzkbh  于 2022-11-20  发布在  Java
关注(0)|答案(7)|浏览(217)

我有以下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>

你能解释一下如何重构下面的代码,在点击href code func后执行,但#不添加到URL中,页面不应该被重新加载吗?

g52tjvyc

g52tjvyc1#

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

<a href="javascript:void(0);" id=key onclick="func(0)">foo</a>
a8jjtwal

a8jjtwal2#

您只需删除href属性即可:

<a id='key' onclick="func(0)">foo</a>
blpfk2vs

blpfk2vs3#

将其更改为:

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

46scxncf4#

我想你忘了“钥匙”里的引号
<a href="#" id="key" onclick="func(0)">foo</a>

0sgqnhkj

0sgqnhkj5#

为了 在 语义 上 更加 准确 , 我 将 使用 一 个 带有 以下 onclick 的 按钮 :

<button id=key onclick="return func(0)">foo</button>

中 的 每 一 个
这样 就 不 需要 用 e . preventDefault/return false 来 破解 了 。

gkl3eglg

gkl3eglg6#

在函数内部,您可以执行以下操作:

func(event){ event.preventDefault(); /* More code here! */ }

preventDefault将阻止重定向,在该行之后,您可以添加任何所需的逻辑。
但是,如果不需要重定向,建议使用button而不是a

ibrsph3r

ibrsph3r7#

如果我们想停止重定向。我们必须返回false。所以我们可以这样做:HTML格式:

<a onclick="return check()" href="{% url 'app_name:delete_url' item.id %}" title='Delete Item' class="btn btn-sm btn-outline-success mr-1"
 <i class="fa fa-trash"></i></a>

脚本:

function check(){
    if (confirm("Do you want to delete?") == true) {
        return true;
    } else {
        //cancle 

       return false
        
    }
}

相关问题