无法使用JQuery模拟Click

时间:2014-01-30 07:50:20

标签: javascript jquery html click simulate

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

这是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

正如您所见,diredct链接有效,但按钮却没有。知道我做错了吗?

由于

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

我根据Jai的建议做了改变。但是,它现在开始播放音频而不是下载,而我想要的是使用HTML5的下载功能。这是jsfiddle link

2 个答案:

答案 0 :(得分: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();

触发锚定点击事件。

答案 1 :(得分:0)

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

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

然后您的触发器将起作用:

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

Demo @ Fiddle 506