18

如何让 jquery 点击<a href="test.zip" id="mylink">test</a>

<script>
    // this wont work
    $('#mylink').trigger('click'); 
</script>

请问你能帮忙吗

4

10 回答 10

41

如果您的意图是像用户单击链接一样导航到指定的 URL,请尝试调用 DOM.click()方法而不是 jQuery.click()方法:

$('#mylink')[0].click();

jQuery.click()将调用您已绑定但不会导致默认单击行为的事件处理程序。

于 2013-06-14T09:15:01.790 回答
10
$(document).ready(function(){
    $('#mylink').trigger('click');
});
于 2013-06-14T09:13:51.613 回答
8

您需要触发默认click方法,而不是由 jQuery 触发的方法。这可以通过在 jQuery 的单击事件中添加默认单击选项来完成,使用this.

<a href="http://about.com/"></a>

这就是 JavaScript 的外观。它基本上在 DOM 准备好时创建事件,并在中间单击它,从而跟随链接。

$(function() {
    $('a').click(function() {
        // 'this' is not a jQuery object, so it will use
        // the default click() function
        this.click();
    }).click();
});

要查看实时示例(打开 about.com),请参阅:http: //jsfiddle.net/8H9UX/

于 2013-06-14T09:24:40.837 回答
3

尝试这个

setTimeout(() => {
$("#mylink")[0].click();
}, 500);
于 2021-06-24T14:58:02.597 回答
2

只需点击:

$("#mylink").click();

如果您的脚本在头部,那么您需要确保元素存在,因此应该在文档准备好时执行脚本。

$(document).ready(function () {
    $("#mylink").click();
});
于 2013-06-14T09:13:30.383 回答
2

如果您希望文件被下载,它不会发生,因为trigger()不会触发默认事件。

于 2013-06-14T09:15:28.017 回答
2

您需要等到 DOM 完成加载。这可以用 jQuery 来完成。一旦 DOM 中的所有元素都可用,匿名函数就会在页面加载时运行。

<script>
    $(function() {
        $('#mylink').trigger('click');
    });
</script>
于 2013-06-14T09:15:35.287 回答
1

使用以下方式....因为您要下载文件,请阻止链接导航。

$(document).ready(function() {
    $('#mylink').click(function(e) {
       e.preventDefault();  //stop the browser navigating
       window.location.href = 'test.zip';
    });
}); 
于 2013-06-14T09:19:23.170 回答
0
document.getElementById('mylink').click();

trigger('click')将触发点击事件,但不会触发默认事件。

$('a').click(function(){ alert('triggered') }) // this will be fired by trigger
于 2013-06-14T09:15:08.807 回答
-1

您上面的代码将不起作用,因为您已经分配了值href,然后您想要onclick对该锚标记进行一些操作。

<a href="test.zip" id="mylink">test</a>

首先,您已分配.zip给 href。所以它会先打开 zip 文件 onclick 并且不会触发触发器中的任何其他操作onclick

所以无论你想做什么操作,先执行然后打开.zip

使用如下代码

<a href="javascript:void(0);" id="mylink">test</a>

$('#mylink').click(function(){
    // do your operation here
    // now open zip 
});
于 2013-06-14T09:23:19.427 回答