Ajouter un délai de jquery événement mouseover
Je suis en train d'ajouter un simple retard à un événement mouseover d'un enfant et d'avoir des difficultés. (Encore à apprendre!)
Ça me permet d'afficher la popup après avoir un temps de retard, mais de montrer à tous en même temps:
onmouseover='setTimeout(function() { $(\".skinnyPopup\").show(); }, 600)'
et cela fonctionne pour n'afficher que la popup, je veux, sans retard:
onmouseover='$(this).children(\".skinnyPopup\").show()'
mais la combinaison n'est pas:
onmouseover='setTimeout(function() { $(this).children(\".skinnyPopup\").show(); }, 600)'
Toute aide serait appréciée. Merci!
OriginalL'auteur TLK | 2010-09-07
Vous devez vous connecter pour publier un commentaire.
Vous devez définir ce que
this
, c'est quand il s'exécute, quelque chose de ce genre:Ou simplement l'utiliser
.delay()
, comme ceci:Les deux ci-dessus sont des solutions rapides, je vous suggère de passer loin de inline gestionnaires et découvrez un discrète méthode (voir cette réponse par Russ Cam pour quelques bonnes raisons), par exemple:
Merci à vous, qui a contribué à ma compréhension. Semble que tout devient bizarre si c'est fait en ligne. Je ne sais pas pourquoi, mais je sais pour l'éviter maintenant!
bienvenue 🙂 si cela résout votre question, assurez-vous de l'accepter comme une réponse, si non, laissez-moi savoir quel est le problème que vous rencontrez toujours 🙂
Désolé, je ne suis pas connecté depuis un moment et n'a pas remarqué que l'option. (n00b) Merci!
OriginalL'auteur Nick Craver
C'est parce que
this
est lié au contexte global, et non pas l'élément. Utilisez quelque chose comme ce qui suit:Si vous êtes catégorique sur inline gestionnaires d'événements, les éléments suivants doivent également travailler:
OriginalL'auteur Cristian Sanchez