【问题标题】:Unable to Simulate Click using JQuery无法使用 JQuery 模拟单击
【发布时间】:2014-01-30 07:50:19
【问题描述】:

我有一个下载音频文件的链接。我希望将其隐藏并允许用户使用按钮调用它。但不知何故,我无法触发点击事件。

这里是 HTML:

<a class="APopupDown" data-icon="home" id="DownloadFile" href="http://yahoo.com/abc.mp3" download="My File Name">Download File</a>

<button data-icon="home" href="#" onclick="DlMsg()">Download</button>

这里是触发器。

function DlMsg()
{
    alert("I am here");
    $('#DownloadFile').trigger('click');

}

一个 Jfiddle 示例是 here

如您所见,直接链接有效,但按钮无效。知道我做错了什么吗?

谢谢

----- 更新 -------

我已按照 Jai 的建议进行了更改。但是,它现在开始播放音频而不是下载,而我想要的是使用 HTML5 的下载功能。这是jsfiddle link

【问题讨论】:

    标签: javascript jquery html click simulate


    【解决方案1】:

    得到了答案。看看这个小提琴http://jsfiddle.net/EWQ6n/512/

    来源:

    <a class="APopupDown" class="test" data-icon="home" id="DownloadFile" href="http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3" download="My File Name">Download File</a>
    
    <button data-icon="home" id="btnDownload">Download</button>
    

    脚本:

    $("#btnDownload").click(function(e){
        $("#DownloadFile").get(0).click();
    });
    

    我就是这样用的

    $("#DownloadFile").get(0).click();
    

    触发锚点点击事件。

    【讨论】:

    • 工作是 JSfiddle 但不在应用程序中。我想知道为什么。
    【解决方案2】:

    您需要先将click 事件绑定到该元素:

    $('#DownloadFile').click(function(e){
        e.preventDefault();
        window.location.href = this.href;
    });
    

    那么您的触发器将起作用:

    $('#DownloadFile').trigger('click');
    

    Demo @ Fiddle 506

    【讨论】:

    • 谢谢。请参阅我上面的编辑。
    • 它不下载文件。它开始在浏览器中播放。
    猜你喜欢
    • 2013-07-08
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多