Ich möchte sicherstellen, dass der Benutzer etwas aufpoppen lassen möchte, wenn er mit der Maus über ein Div fährt. Ich möchte nicht, dass der Benutzer versehentlich etwas auslöst, um ohne Absicht aufzutauchen. setTimeout
funktioniert nicht, denn selbst wenn es sehr kurz ist, erscheint das Pop-up trotzdem, es wird nur verzögert. Was ich will, ist der Benutzer zu Maus über etwas für 1sec für ein Pop-up anzuzeigen.
**Aktualisierung:
Wenn ich das tue:
<div onmouseover="myTimer=setTimeout('display(this)', 5000);">
der Timer funktioniert und wird nach 5 Sekunden angezeigt, aber this
wird nicht übergeben und ich kann das Element nicht über $(element).next()
, usw. Wenn ich das tue:
<div onmouseover="myTimer=setTimeout(display(this), 5000);">
der Timer funktioniert nicht. Was ist falsch, wie kann ich den Timer und die this
verabschiedet werden?
Gracias.
**update2: die this
Problem von aquí Staaten: "Code, der von setTimeout() ausgeführt wird, wird in einem anderen Ausführungskontext ausgeführt als die Funktion, von der er aufgerufen wurde. Folglich wird das this-Schlüsselwort für die aufgerufene Funktion auf das Fenster- (oder globale) Objekt gesetzt, es ist nicht dasselbe wie der this-Wert für die Funktion, die setTimeout aufgerufen hat."
Ich habe die Antwort auf diese Frage gefunden aquí wo Sie "einen Verweis auf den Kontext, in dem die Funktion setTimeout aufgerufen wird, speichern" müssen