В Javascript я хочу, чтобы мое событие onmouseout находилось в режиме ожидания / паузы / ожидания / (не уверен в правильной терминологии здесь) в течение трех секунд, прежде чем вступить в силу. Как это достигается?
Благодарность



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


function outfunction(event) {
var that = this; // to be able to use this later.
window.setTimeout(function() {
…
/* you can use 'that' here to refer to the element
event is also available in this scope */
}, 3000);
}
Вы должны передать объект события out и внутренней анонимной функции.
нельзя передать его внутренней функции, но он работает, потому что анонимная функция использует область действия внешней функции.
Доступ к объекту события во внутренней функции сомнительный, лучше было бы получить любую информацию, необходимую из объекта события, в переменные во внешней функции.
Но так же используется «это», и я не знаю способа обойти это, кроме использования другой анонимной функции.
var doSomething = function () {
//Some code will here after 3 seconds of mouseout
};
anElement.onmouseout = function () {
setTimeout(doSomething, 3000);
};
Приведенный выше код выполняет функцию doSomething через 3 секунды после вызова onmouseout.
Я бы использовал термин «отложить».