2013-01-21 15 views
5

Przeglądałem pytania Stackoverflow, próbując uzyskać pomoc z prostym opóźnieniem łącza; Chcę umieścić go na div, i nie mogę zrobić głowy lub ogony z przykładów, które znalazłem.Chcę opóźnić łącze na okres 500 z javascript

Do tej pory rozumiem, że muszę powstrzymać natywną funkcję href, ale nie wiem jak to zrobić. Kod nadal jest dla mnie bardzo obcy. Wsparcie?

+0

Co masz na myśli przez "opóźnienie połączenia" *? – VisioN

+1

Masz na myśli opóźnienie, które występuje, gdy użytkownik kliknie na link, zanim przeglądarka przejdzie do połączonej strony? – mxgr

+0

Proszę podać więcej szczegółów w pytaniu. Większość nie ma większego sensu. Przykład lub urywek będzie pomocny. –

Odpowiedz

10

Ustaw atrybut href jak href="javascript:delay('URL')" i JavaScript:

function delay (URL) { 
    setTimeout(function() { window.location = URL }, 500); 
} 
+0

To będzie naprawdę głupie pytanie, ale gdzie mam to umieścić, aby wpłynęło na div? – ammonhra

+1

Ohh, na wypadek, gdyby to było dla div, zrób to

Click here to go to google in half a second
gurvinder372

+0

Och, czekaj, właśnie zdałem sobie sprawę, co robić. Dzięki. – ammonhra

3

Jeśli chcesz opóźnić każdy link na swojej stronie, można zrobić to z jQuery jak ten

$(function(){ 
    $("a").click(function(evt){ 
     var link = $(this).attr("href"); 
     setTimeout(function() { 
      window.location.href = link; 
     }, 500); 
    }); 
}); 
+3

Aby to działało, będziesz potrzebować dodać evt.preventDefault(); na początku swojej funkcji. –

+2

To nie obsługuje ustawienia 'target =" _ blank "' ani żadnego innego ustawienia 'target'. –

-1

Używam tego celu Przed kontynuowaniem funkcji należy poczekać na:

var wait_until = new Date().getTime() + 500; 
while (new Date().getTime() < wait_until) { 
    //Do nothing, wait 
}