【发布时间】:2014-07-25 13:56:12
【问题描述】:
我有一个这样的链接:
<a id="downloadReport" href="">Download</a>
我想做的是在点击链接时通过AJAX请求更新元素的href属性,然后触发点击事件跟随链接。这是Javascript代码:
$("#downloadReport").click(function(event)
{
console.log($(this).attr('href'));
if ($(this).attr('href') == "")
{
event.preventDefault();
var year = parseInt($("#reportYears").val());
if (year != 0)
{
$.post(
"/Trainings/getReport",
{data: year},
function(data)
{
$("#downloadReport").attr('href', data.trim());
$("#downloadReport").click();
});
}
}
return true;
});
所以通常行为应该是:
- 点击链接
- href 已打印
- href 为空 -> 输入 if
- 默认点击事件被阻止
- AJAX 请求
- href 已更新
- 点击事件被触发
- href 已打印
- href 不为空
- return true -> 链接应该被关注
我得到一个空字符串,然后是输出中的一个有效链接,因此 AJAX 请求和点击事件触发器有效,但第二个事件没有遵循该链接。 如果返回 true 不应该触发默认事件吗?
【问题讨论】:
-
改用
window.location就行了,为什么还要通过DOM呢? -
为什么一定要重新触发点击事件?你可以简单地做一个
window.location。 -
我不想做一个 window.location 因为我想保留当前窗口
标签: javascript jquery html ajax