单击锚链接后,我向服务器发送$ .ajax请求。
但是,在完成之前,浏览器会导航到href位置。
最初我已经将e.preventDefault放在所有锚点上,并且在成功时:对一个window.location执行href。
这非常有效,但是对于没有href属性的锚,而是一些javascript函数,这会失败,因为找不到href,并且ajax请求失败。
答案 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;
});