I setTimeout
mouseout
in einer Schaltfläche verwenden möchten erwartet und beziehen sich auf $(this)
(die Schaltfläche) aus dem setTimeout
. Ich benutze that = $(this)
, dann benutze that
in der setTimeout
aber es funktioniert nicht ganz wie erwartet.
Wenn Sie den Mauszeiger über die einzelnen Links bewegen, funktioniert das langsam (1,2,3). Aber wenn du es schnell unter 100ms machst, bekomme ich alle 3s (3,3,3).
Meine Vermutung ist die Schließung funktioniert nicht und die that
var wird überschrieben, aber ich kann einfach nicht herausfinden, warum.
Können Sie erklären, was passiert?
$("nav a")
.mouseenter(function() {
//
})
.mouseout(function(event) {
\t that = $(this);
\t setTimeout(function(){
\t \t console.log(that.data('uid'));
}, 100);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<ul>
<li><a href="" data-uid="1">One</a></li>
<li><a href="" data-uid="2">Two</a></li>
<li><a href="" data-uid="3">Three</a></li>
</ul>
</nav>
'var dass = ...'; –