2010-01-13 5 views
37

Je suis à la recherche d'un moyen de "cliquer" automatiquement sur un article lors du chargement de la page.Comment déclencher le clic sur le chargement de la page?

J'ai essayé d'utiliser

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

mais il ne semble pas fonctionner? Cependant, lorsque j'entre $("ul.galleria li:first-child img").trigger('click'); dans la console de Firebug et exécute le script, cela fonctionne.

L'événement déclencheur peut-il être utilisé en charge?

+0

Il devrait fonctionner, à moins que l'élément est ajouté plus tard. Pouvez-vous poster une démo? (Essayez http://jsbin.com) – SLaks

+0

Pouvez-vous poster le scénario où vous voulez faire cela? On dirait un javascript envahissant – Perpetualcoder

+0

Où est ajouté votre gestionnaire 'click'? – SLaks

Répondre

92

Le gestionnaire de clics que vous tentez de déclencher est probablement également connecté via $(document).ready(). Ce qui se passe probablement, c'est que vous déclenchez l'événement avant que le gestionnaire ne soit connecté. La solution consiste à utiliser setTimeout:

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

Un délai de 10 ms, la fonction va de fonctionner immédiatement après avoir été appelé tous les gestionnaires $(document).ready().

+0

C'est exactement ce que je cherchais. Je vous remercie! – Justine

+0

Superstar merci –

+0

une solution non-jquery serait grande –

5
$(function(){ 

    $(selector).click(); 

}); 
+1

Référence de l'API: http://docs.jquery.com/Events/click. Notez que '$ (callback)' est équivalent à '$ (" document "). Ready (callback);' –

+0

Même effet - fonctionne dans Firebug, mais lorsqu'il est entré dans mon fichier de scripts, il ne fonctionne pas. Firebug ne donne pas non plus d'erreurs. Est-ce important qu'il y ait d'autres scripts dans le fichier dans $ (function() {..}); ainsi que? – Justine

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'); 
}); 

Assurez-vous que le gestionnaire de clic est ajouté avant l'événement déclencheur dans la séquence de la pile d'appel.

$("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

Votre réponse est la plus appropriée. Je vous remercie. – Foreever

1

essayer,

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

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

Vous pouvez effectuer les opérations suivantes: -

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