2012-01-26 10 views
6

Mam sytuację, w której muszę wykonać wiele akcji na stronie, aby zainicjować ustawienia. Nie mam jeszcze żadnego kodu, ponieważ, szczerze mówiąc, mam problem ze znalezieniem miejsca, w którym można by zacząć.jQuery: Wywoływanie zdarzeń .click(), jeden po drugim

Oto, co chcę zrobić:

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

    $('#element-one').trigger('click'); 
    // wait for the first trigger event to complete (it loads ajax content into a div tag) 
    // then move on to this one... 
    $('#element-two').trigger('click'); 
    // then move on to this one... 
    $('#element-three').trigger('click'); 
    // then move on to this one... 
    $('#element-four').trigger('click'); 
    // then finally move on to the last one 
    $('#element-five').trigger('click'); 

}); 

Jak to możliwe?

+0

Czy zastanawiałeś się nad wywołaniem innych wyzwalaczy wewnątrz wywołania zwrotnego AJAX? – Corbin

+2

Dlaczego nie utworzyć funkcji Init(), która wywołuje się po załadowaniu strony, która wywoła wszystkie funkcje wywoływane w zdarzeniach kliknięcia – RandomWebGuy

Odpowiedz

10

wewnątrz pierwszego przewodnika można użyć odroczony obiekt, rozwiązać go w ajax sukcesu zwrotnego i powrót obietnicę tak byś łańcuch swój kod tak (nie testowałem)

$.when(
    $('#element-one').triggerHandler('click') /* asynchronous task */ 
).done(function() { 
    $('#element-two').triggerHandler('click') /* synchronous task */ 
    ... 
    $('#element-five').triggerHandler('click') /* synchronous task */ 
}) 

z http://api.jquery.com/category/deferred-object/

jQuery.Deferred(), wprowadzony w wersji 1.5 jest chainable przedmiotem narzędzie, które można rejestrować wiele zwrotnych do kolejki zwrotnego, kolejki wywołania zwrotnego, i przekaźnik sukces lub stan awarii jakiejkolwiek funkcji synchronicznym lub asynchronicznym.

Uwaga: Kiedyś triggerHandle() zamiast trigger(): http://api.jquery.com/triggerHandler/ prostu być agnostykiem na elementach, do których przyłączone swoje ładowarki. Użyj także trigger(), jeśli jest to odpowiednie dla twoich potrzeb.

Powiązane problemy