我有一个这样的链接:
<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 不为空
- 返回 true -> 应遵循链接
我在输出中得到一个空字符串,然后是一个有效链接,因此 AJAX 请求和单击事件触发器起作用,但在第二个事件中未遵循该链接。 如果返回 true 是否应该触发默认事件?
最佳答案
$("#downloadReport").click();
将触发附加到它的 jquery 处理程序。您需要使用 dom click 事件才能重定向到新的 href。像这样使用
$("#downloadReport")[0].click();
关于javascript - 将单击事件触发到链接上的单击处理程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24957434/