2010-01-13 20 views
37

Estoy buscando una forma de "hacer clic" automáticamente en un elemento cuando se carga la página.¿Cómo se activa la carga de la página?

He intentado usar

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

pero no parece funcionar? Sin embargo, cuando ingreso $("ul.galleria li:first-child img").trigger('click'); en la consola de Firebug y ejecuto el script, funciona.

¿Se puede usar el evento disparador en la carga?

+0

que debería funcionar, a menos que se añade el elemento más tarde. ¿Puedes publicar una demostración? (Pruebe http://jsbin.com) – SLaks

+0

¿Puede publicar el escenario donde desea hacer esto? Suena como obtrusive javascript – Perpetualcoder

+0

¿Dónde se agrega el controlador 'click'? – SLaks

Respuesta

92

También es probable que el controlador de clic que está intentando activar esté conectado también a través del $(document).ready(). Lo que probablemente está sucediendo es que estás desencadenando el evento antes de que se adjunte el controlador. La solución es utilizar setTimeout:

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

Un retraso de 10 ms hará que la función se ejecute inmediatamente después de que todos los controladores de $(document).ready() han sido llamados.

+0

Eso es exactamente lo que estaba buscando. ¡Gracias! – Justine

+0

Superstar gracias –

+0

una solución no-jquery sería genial –

5
$(function(){ 

    $(selector).click(); 

}); 
+1

Referencia de API: http://docs.jquery.com/Events/click. Tenga en cuenta que '$ (devolución de llamada)' es equivalente a '$ (" documento "). Listo (devolución de llamada);' –

+0

Mismo efecto: funciona en Firebug, pero cuando se ingresa en mi archivo de scripts, no lo hace. Firebug no da ningún error también. ¿Importa que haya otros scripts en el archivo en $ (function() {..}); ¿también? – 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'); 
}); 

a asegurarnos se añade el controlador de clic antes del evento de disparo en la secuencia de pila de llamadas.

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

La tuya es la respuesta más adecuada. Gracias. – Foreever

1

probar esto,

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

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

Usted puede hacer lo siguiente: -

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