Html 我应该使用什么href URL以使AJAX函数不';不更改页面的url?

Html 我应该使用什么href URL以使AJAX函数不';不更改页面的url?,html,ajax,Html,Ajax,我正在建立一个网站,其中包括一个类似于Facebook的“喜欢”按钮的功能,允许用户点击它并影响一些后端和可见的更改,而无需重新加载整个页面。我已经实现了AJAX调用,它们工作得很好 仅供参考,该站点是用Django/Python构建的,我正在使用Dajaxice包来帮助我完成AJAX的工作(但这只是这个问题的附带问题) 下面是我的HTML代码的外观: <a id="myID" name="myID" href="#" onclick="Some_Fancy_AJAX_Stuff_Here

我正在建立一个网站,其中包括一个类似于Facebook的“喜欢”按钮的功能,允许用户点击它并影响一些后端和可见的更改,而无需重新加载整个页面。我已经实现了AJAX调用,它们工作得很好

仅供参考,该站点是用Django/Python构建的,我正在使用Dajaxice包来帮助我完成AJAX的工作(但这只是这个问题的附带问题)

下面是我的HTML代码的外观:

<a id="myID" name="myID" href="#" onclick="Some_Fancy_AJAX_Stuff_Here;">Like</a>

我不喜欢的是这个页面位于--但是当他们单击链接时,浏览器中的URL会改变。一个“#”被附加到它后面。我不喜欢那样。当我点击“喜欢”时,这不会发生在Facebook上,那么我如何才能摆脱这种行为呢

我尝试将href=“#”替换为href=“.”或href=“”,但没有成功。我还尝试过完全从标记中删除href属性。这确实起到了作用,但它有一个不良的副作用,即删除下划线和链接的颜色,并将鼠标悬停转到手上


那么,最干净的方法是什么呢?

在单击处理程序中,您需要阻止默认操作。当您单击
href
值为
#
的锚点时,它会将浏览器重定向到内部标记。你只需要告诉主播什么都不要做:

var anchor = document.querySelector("#myID");

anchor.addEventListener("click", function ( event ) {
    event.preventDefault();
    // Proceed to make asynchronous request
}, false);

return false来结束那些花哨的AJAX内容
以防止跟踪链接的默认操作

我正在建立一个网站,其中包括一个像Facebook的“喜欢”按钮这样的功能

你自己说的,使用
按钮,而不是
按钮

所以

Like
这将是一种更干净的方式

最干净的方法是通过Javascript添加事件侦听器

<button id="myID" name="myID" onclick="Some_Fancy_AJAX_Stuff_Here;">Like</button>