Javascript A HREF=”的元素#&引用;导致页面在单击时重新加载

Javascript A HREF=”的元素#&引用;导致页面在单击时重新加载,javascript,jquery,Javascript,Jquery,我有一些a元素,它们通过javascript运行函数,并将#设置为href,但是我最近更改了一些内容,导致这些元素尝试重新加载页面,而不是什么都不做,从而破坏了它们的功能 我能找到什么会导致这种情况 document.getElementById(“link”).onclick=function(){alert(“Dosomething javascript”)} 但是,单击此按钮会重新加载页面,我不确定是什么原因导致此按钮重新加载页面。请尝试javascript:void(0)# 例如

我有一些
a
元素,它们通过javascript运行函数,并将
#
设置为
href
,但是我最近更改了一些内容,导致这些元素尝试重新加载页面,而不是什么都不做,从而破坏了它们的功能

我能找到什么会导致这种情况

document.getElementById(“link”).onclick=function(){alert(“Dosomething javascript”)}

但是,单击此按钮会重新加载页面,我不确定是什么原因导致此按钮重新加载页面。
请尝试
javascript:void(0)
#

例如



因为没有看到一些代码,我们永远不知道是什么导致了这个问题。

这是
a
标签的正常行为如果你不想让它们重新加载你的页面或滚动到页面顶部,你应该从
a
标签中删除
href

你也可以阻止它们像这样重新加载你的页面:

<a href="#" onclick="return false;">No reload</a>

<a href="javascript:void(0)">No reload</a>
$('a[href="#"]')).click(function(e) { 
    e.preventDefault(); 
});

在函数中,您需要使用
e.preventDefault()
event.preventDefault()
。例如:

function clickMe(e) {
   e.preventDefault();
}
根据最近的注释,您需要将事件传递给函数,使其如下所示:

<a href="#" onclick="return false;">No reload</a>

<a href="javascript:void(0)">No reload</a>
$('a[href="#"]')).click(function(e) { 
    e.preventDefault(); 
});
请注意,这是一种我不推荐的方法,因为它将阻止所有链接,并可能导致比预期更多的问题。您需要使用特定的类来定位您的锚。

试试看

<a onClick="callback();"></a>

只需删除href=“#”


它不会重新加载或刷新浏览器

到目前为止,我只提供了两个示例,但我猜有10个这样的示例,修改整个模板似乎需要很多工作。谢谢你的建议。你能用
创建一个有效的代码段并在这里复制你的问题吗?我会尝试,但不确定是什么破坏了它。也许它正在滚动到顶部,而不是像#工作原理那样重新加载…检查你的浏览器控制台。可能有JS错误。恐怕没有JS错误。如果你有一个#你可以通过id链接页面上的元素,这是不正常的。@harri是的,如果你的目标是
id
,但是如果你只是使用
,它会重新加载页面。不,它不会看到代码段。这不是
a
标记的正常行为<代码>#
将不允许重新加载页面。为什么我被否决了。。。?这就是OP需要防止对锚定标签进行默认操作的原因…我不确定为什么这是一个否决票,谢谢你的帮助,但我不认为这是默认行为。这可能是我最接近的修复方法,尽管不像你做的那样$('a[href=“#“]”)。单击(函数(){e.preventDefault();});好的,谢谢。我更新了我的答案,但请尝试$('a[href=“#”]”)。单击(函数(e){e.preventDefault();});老实说,是的,我注意到了这一点,并对其进行了更改,但对于修补程序来说并不起作用。