如何使用jQuery在页面加载时触发点击事件

5

我看到了很多关于这个问题的帖子,但我试图尝试了所有方法都不起作用。

$(document).ready(function() {
   $('#link_to_content').tigger('click');
});

一旦页面加载完成,我想要触发点击事件。我知道在页面加载后打开链接有点奇怪,但在这种情况下这样做是有意义的。我正在使用jQuery 1.7版本。

2
这篇文章中是笔误还是你的代码有问题?tigger 应该是 trigger。除非你想让一只老虎在你的页面上上下下地跳跃。 - John Koerner
可能是如何在页面加载时触发点击?的重复问题。 - Atif Tariq
3个回答

3

should be:

$(document).ready(function() {
   $('#link_to_content').trigger('click');
});

这里有一个工作范例: http://jsfiddle.net/zpnQv/

编辑:

如果你想打开链接,可以尝试如下操作:

HTML:
<a href="http://www.yahoo.com/" id="link_to_content">Click Me</a>


JS:
$(document).ready(function () {

    $("#link_to_content").click(function (e) {
        e.preventDefault();

        var href = $(this).attr("href");

        alert("going to " + href);
        window.location = href;
    });
    $('#link_to_content').trigger('click');
});

例子:http://jsbin.com/omudih/1/

当使用jQuery时,单击事件实际上不会跟随其href,这可能是一个安全问题。该演示仅在理论上通过在单击处理程序中执行警报来工作。 - rockerest

1

jQuery 不会点击链接。我的理解是这可能存在一定的安全风险,这也是链接答案的主要内容。

然而,正如链接答案所述,您可以简单地选择Javascript HtmlDOMElement并用.click()点击它。

换句话说:$('#link_to_content')[0].click();


0
你正在尝试触发的点击处理程序很可能也是通过$(document).ready()附加的。可能发生的情况是,在处理程序附加之前,你就触发了事件。解决办法是使用setTimeout函数:
$("document").ready(function() {
setTimeout(function() {
    $("#link_to_content").trigger('click');
},10);
});

延迟10毫秒将导致函数在所有$(document).ready()处理程序被调用后立即运行。

或者

在.load()的回调函数中使用trigger;

您也可以使用.on()代替trigger()

$('div_to_load').load("#link_to_content",function(){
$("#link_to_content").trigger('click');
});

.on() 示例

$('div_to_click').on("click",".title",function(){
alert('sdfdsf');
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接