我应该使用什么href URL,以便AJAX功能不会更改页面的URL?

时间:2013-12-26 00:47:30

标签: html ajax

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

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

以下是我的HTML代码:

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

我不喜欢的是此页面位于http://www.mySite.com/index.html - 但是当他们点击该链接时,浏览器中的网址会发生变化。 “#”附加到它上面。我不喜欢那样。当我点击“赞”时,它不会发生在Facebook上,所以我怎样才能摆脱这种行为?

我尝试用href =“替换href =”#“。”或者href =“”,但那不起作用。我也试过简单地从标签中删除href属性。这样做的伎俩,但它有不良的副作用,删除下划线和链接着色和鼠标悬停 - 转手。

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

使用return false;结束花哨的AJAX内容,以防止跟踪链接的默认操作。

答案 2 :(得分:0)

  

我正在建立一个包含Facebook“喜欢”按钮等功能的网站

你自己说,使用button而不是a nchor。

所以

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

将成为更清洁的方式。

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