2010-01-13 118 views
37

我正在寻找一种方法来在页面加载时自动“单击”一个项目。如何触发点击页面加载?

我使用

$("document").ready(function() { 
    $("ul.galleria li:first-child img").trigger('click'); 
}); 

尝试,但它似乎没有工作?但是,当我在Firebug的控制台中输入$("ul.galleria li:first-child img").trigger('click');并运行脚本时,它可以正常工作。

触发事件可以在加载时使用吗?

+0

它应该工作,除非该元素是后来添加的。你可以发布演示吗? (试试http://jsbin.com) – SLaks 2010-01-13 20:34:51

+0

你可以发布你想要做的这个场景吗?听起来有点突兀javascript – Perpetualcoder 2010-01-13 20:38:36

+0

你的'click'处理程序在哪里添加? – SLaks 2010-01-13 20:40:34

回答

92

您试图触发的点击处理程序最有可能还通过$(document).ready()附加。可能发生的事情是,您在处理程序连接之前触发事件。该解决方案是使用setTimeout

$("document").ready(function() { 
    setTimeout(function() { 
     $("ul.galleria li:first-child img").trigger('click'); 
    },10); 
}); 

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

+0

这就是我正在寻找的。谢谢! – Justine 2010-01-13 21:14:42

+0

超级巨星感谢 – 2014-03-12 16:39:46

+0

一个非jQuery的解决方案将是伟大的 – 2014-08-07 11:34:26

5
$(function(){ 

    $(selector).click(); 

}); 
+1

API参考:http://docs.jquery.com/Events/click。 请注意'$(callback)'相当于'$(“document”)。ready(回调);' – 2010-01-13 20:35:09

+0

效果相同 - 在Firebug中有效,但是当输入到我的脚本文件时,它不会。 Firebug也不会给出任何错误。 $(function(){..})中的文件中有其他脚本吗?以及? – Justine 2010-01-13 20:36:00

4
$("document").ready({ 
    $("ul.galleria li:first-child img").click(function(){alert('i work click triggered'}); 
}); 

$("document").ready(function() { 
    $("ul.galleria li:first-child img").trigger('click'); 
}); 

只要确保单击处理程序在调用栈序列的触发器事件之前加入。

$("document").ready(function() { 
     $("ul.galleria li:first-child img").trigger('click'); 
    }); 

    $("document").ready({ 
     $("ul.galleria li:first-child img").click(function(){alert('i fail click triggered'}); 
    }); 
+0

你是最合适的答案。谢谢。 – Foreever 2015-07-02 16:38:03

1

试试这个,

$("document").ready(function(){ 

$("your id here").trigger("click"); 
}); 
0

你可以做到以下几点: -

$(document).ready(function(){ 
    $("#id").trigger("click"); 
});