2010-01-13 14 views
37

Poszukuję sposobu automatycznego "kliknięcia" elementu po załadowaniu strony.Jak wywołać kliknięcie na stronie?

Próbowałem za pomocą

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

ale nie wydaje się do pracy? Jednak po wprowadzeniu $("ul.galleria li:first-child img").trigger('click'); do konsoli Firebug i uruchomieniu skryptu, działa.

Czy zdarzenie wyzwalające może być używane podczas ładowania?

+0

To powinno działać, chyba że element jest dodawany później. Czy możesz zamieścić demo? (Spróbuj http://jsbin.com) – SLaks

+0

Czy możesz umieścić scenariusz tam, gdzie chcesz to zrobić? Brzmi jak natarczywy javascript – Perpetualcoder

+0

Gdzie jest dodany twój handler 'click'? – SLaks

Odpowiedz

92

Obsługa kliknięcia, którą próbujesz wywołać, najprawdopodobniej jest również podłączona przez $(document).ready(). Prawdopodobnie dzieje się tak, że uruchamiasz zdarzenie przed dołączeniem modułu obsługi. Rozwiązaniem jest użycie setTimeout:

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

Opóźnienie od 10ms spowoduje, że funkcja natychmiastowego uruchomienia po wszystkich $(document).ready() koparki zostały nazwane.

+0

Tego właśnie szukałem. Dziękuję Ci! – Justine

+0

Superstar dzięki –

+0

rozwiązanie nie-jquery byłoby świetnie –

5
$(function(){ 

    $(selector).click(); 

}); 
+1

API reference: http://docs.jquery.com/Events/click. Zwróć uwagę, że '$ (oddzwanianie)' jest równoważne '$ (" document "). Ready (callback);' –

+0

Ten sam efekt - działa w Firebug, ale po wpisaniu do mojego pliku skryptów nie działa. Firebug również nie daje żadnych błędów. Czy ma znaczenie inne skrypty w pliku w $ (function() {..}); także? – 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'); 
}); 

tylko upewnić się, że procedura obsługi kliknięcia dodano przed zdarzeniem wyzwalającym w kolejności stosu wywołań.

+0

Twoja jest najbardziej odpowiednią odpowiedzią. Dziękuję Ci. – Foreever

1

spróbować,

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

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

można wykonać następujące czynności: -

$(document).ready(function(){ 
    $("#id").trigger("click"); 
}); 
Powiązane problemy