gpt4 book ai didi

javascript - 将单击事件触发到链接上的单击处理程序中

转载 作者:行者123 更新时间:2023-12-03 12:11:13 26 4
gpt4 key购买 nike

我有一个这样的链接:

 <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;
});

所以通常的行为应该是:

  1. 链接被点击
  2. href 已打印
  3. href 为空 -> 输入 if
  4. 阻止默认点击事件
  5. AJAX 请求
  6. href 已更新
  7. 点击事件被触发
  8. href 已打印
  9. href 不为空
  10. 返回 true -> 应遵循链接

我在输出中得到一个空字符串,然后是一个有效链接,因此 AJAX 请求和单击事件触发器起作用,但在第二个事件中未遵循该链接。如果返回 true 是否应该触发默认事件?

最佳答案

$("#downloadReport").click(); 将触发附加到它的 jquery 处理程序。您需要使用 dom click 事件才能重定向到新的 href。像这样使用

$("#downloadReport")[0].click();

关于javascript - 将单击事件触发到链接上的单击处理程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24957434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com