2012-01-03 14 views
6

Chciałbym użyć metody wyzwalania z opóźnieniem przed realizacją, próbuję w ten sposób:użyć metody wyzwalania z opóźnieniem

$('#open-contact').delay(3000).trigger('click'); 

ale kod działa natychmiast.

Czy ktoś z was mógłby mi pomóc?

bardzo dziękuję

Odpowiedz

13

jQuery doc says: metoda

.delay() jest najlepsze dla opóźniania między kolejce efekty jQuery. Ponieważ jest on ograniczony - nie oferuje na przykład sposobu na anulowanie opóźnienia. Metoda ta() nie zastępuje natywnej funkcji setTimeout języka JavaScript, co może być bardziej odpowiednie w przypadku niektórych przypadków użycia.

Tak, chciałbym przepisać to jako

setTimeout(function() { 
    $('#open-contact').trigger('click'); 
}, 3000); 
4

Z dokumentacji jQuerys o opóźnieniu: metoda

.delay() jest najlepsze dla opóźniania między kolejce efekty jQuery. Ponieważ jest on ograniczony - nie oferuje na przykład sposobu na anulowanie opóźnienia. Metoda ta() nie zastępuje natywnej funkcji setTimeout języka JavaScript, co może być bardziej odpowiednie w przypadku niektórych przypadków użycia.

Innymi słowy należy użyć setTimeout() zamiast, czyli:

setTimeout(function() { $('#open-contact').trigger('click'); }, 3000); 
4

Spróbuj:

 

$('#open-contact').delay(3000).queue(function() { 
    $(this).trigger('click'); 
}); 

 
Powiązane problemy