浏览器导航到$ .ajax请求完成之前的链接

时间:2009-09-27 00:53:32

标签: jquery ajax

单击锚链接后,我向服务器发送$ .ajax请求。

但是,在完成之前,浏览器会导航到href位置。

最初我已经将e.preventDefault放在所有锚点上,并且在成功时:对一个window.location执行href。

这非常有效,但是对于没有href属性的锚,而是一些javascript函数,这会失败,因为找不到href,并且ajax请求失败。

2 个答案:

答案 0 :(得分:2)

只需检查href以确保在重定向之前它是一个有效的URL?

我建议不要使用<a href="javascript: ...">样式。而是使用<a href="#" onclick="...">,或者更好的是,在javascript本身中应用javascript处理程序,而不是HTML标记。从长远来看,它会让事情变得容易多了。只要您的点击处理程序返回false,浏览器就不会重定向。

答案 1 :(得分:1)

如果您要停止页面上的任何链接,请访问HREF(已定义与否),您可以尝试

$("a").click(function() { return false; });

点击链接后,jQuery将返回false,这意味着浏览器不会跟随链接,您也可以遵循相同的表单提交原则,这对您的AJAX非常有用。

进入的一个好习惯是将ID放在你将使用soley来操作JavaScript的元素上,例如“隐藏”链接,<a href="" id="hide-me">Hide me</a>可以使用

进行控制
$("a#hide-me").click(function() {  
    // JavaScript to action goes here
    return false; 
});