2010-11-08 4 views
2

Je sais que nous pouvons retarder la redirection d'URL facilement avec plaine javascript ci-dessous,jquery: delay() + window.location?

setTimeout(function(){ document.location = 'http://stackoverflow.com/';}, 2000); 

si je veux utiliser l » delay()jQuery?

$(window.location).delay(4000).attr('href', 'http://stackoverflow.com/');// fail to work! 

Des idées?

merci.

Répondre

8

Réponse simple: ne le font pas usage.delay() ou tenter, c'est une façon vraiment rond-point non-sens pour obtenir ce que vous êtes après, car il est just calling setTimeout() underneath.

Il n'a pas été conçu pour cela du tout (il est pour faire la queue, puis principalement pour les animations), et que vous essayez d'utiliser l'emplacement dans une enveloppe (qui est $() essaie de l'utiliser comme un sélecteur), ce qui est également faux.

Utilisez jQuery (ou toute autre couche d'abstraction, dans toutes les langues) quand il est logique de le faire, cela fait vraiment aucun sens ici, utilisez setTimeout(), vous épargnerez la confusion et le client le coût du processeur.

+0

merci pour la réponse! :-) – laukok

1

Le problème ici n'est pas le délai. $(window.location).attr('href','http://stackoverflow.com/') ne fonctionnerait pas non plus, parce que href n'est tout simplement pas un attribut de window.location car window.location n'est pas du tout un nœud DOM.

+1

Il y a * beaucoup * de problèmes ici, c'est juste l'un d'entre eux. –

+0

merci. Maintenant, je comprends! :-) – laukok

+0

@Nick Il n'y a pas beaucoup de problèmes ... s'il y avait une fonction jQuery qui affecte à window.location.href, il serait parfaitement valide de le mettre dans la chaîne d'animation. – AndreKR