这个问题太奇葩了,真的是费解。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script>
$(
function () {
$("a[name='link']").click(
function () {
$.post("Handler1.ashx", {}, function (data) {
$("a[name='link']").attr("href", "http://www.google.com");
});
}
);
}
)
</script>
</head>
<body>
<a name="link" href="http://www.baidu.com">测试</a>
</body>
</html>
为什么上面的代码点击测试跳转不到google而是baidu呢,我ajax里面明明改了啊,为什么呢?
怎么样才可以呢?
[解决办法]
难道是因为大陆屏蔽了Google的缘故?你设置下代理
[解决办法]
是不是缓存问题,清理缓存试试
[解决办法]
<script>
$(document).ready(
function () {
$("a[name='link']").attr("href", "http://www.google.com");
}
)
</script>
[解决办法]
$("a[name='link']").click(
function () {
$.post("Handler1.ashx", {}, function (data) {
$("a[name='link']").attr("href", "http://www.google.com");
});
return false;
}
click事件里面,最后加一个 return false; 试试
[解决办法]
可能是因为大陆屏蔽了Google的缘故?你设置下代理
[解决办法]
1.post是异步的,当你点击a的时候,异步调用Handler1.ashx的时候,页面实际是被转到百度的。所以就不存在异步调用结果的处理过程了。
2.就算你的代码处理了异步的结果,但只是把<a>的部分属性改了,并没有再次点击的过程,所以跳转去的页面还是a标签原始的href
[解决办法]
要用 click事件那就改成
$(
function () {
$("a[name='link']").click(
function () {
$.post("Handler1.ashx", {}, function (data) {
location.href = 'http://www.google.com';
});
}
);
}
)