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

时间:2015-09-07 09:58:12

标签: javascript jquery html ajax onload

我有一个包含AJAX加载内容的网页。如果我点击"导出"内容使用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();
    });
});

但没有任何反应,有人有任何想法吗?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

的更多信息

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