jQuery 对 ajax 加载的内容使用 .on(load)

jQuery use .on(load) with ajax loaded content

我有一个包含 AJAX 加载内容的网页。如果我点击 "export",内容会重新加载并使用 PHP:

生成一个 HTML a-Element
<a style=\"display:none;\" id=\"menue-export-link\" href=\"download/".$this->select->downloadcsv."\"></a>

现在我想自动开始下载,所以我写了下面的JavaScript代码来在a-Element加载时开始下载:

$(document).ready(function () {
    $(document).on('load', '#menue-export-link', function() {
        console.log('click export');
        $('#menue-export-link').click();
        $('#menue-export-link').remove();
    });
});

但是没有任何反应,有人知道吗?

$(document).on("click", "#menue-export-link", function() {
  console.log("click export");
});

当您的主页加载时,您的 js 会被触发,#menue-export-link 到那时可能还不存在。如果使用 $.ajax 加载 link,请将您的 javascript 放在 success 回调中,以确保您的 link 在触发您的代码之前存在或正在加载.

首先,html 锚点元素没有 loadonload 事件。 正如@The F 所说,您必须在 ajax 成功回调中触发下载。请记住在 DOM 中添加 html 后找到并触发它。有关 jQuery ajax http://api.jquery.com/jquery.ajax/

的更多信息

现在触发下载部分。触发导致导航的点击事件有点棘手。以下问题很好地回答了 jQuery: how to trigger anchor link's click eventHow can I simulate an anchor click via jquery?