2008-12-21 15 views
0

En Javascript, je veux que mon événement onmouseout mette en veille/pause/wait/(pas sûr de la bonne terminologie ici) pendant trois secondes avant de prendre effet. Comment cela est-il accompli?Javascript onmouseout Dormir?

grâce

+0

Le terme que je voudrais utiliser est defer. – AnthonyWJones

Répondre

3
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); 
} 
+0

Vous devez passer l'objet événement à, et à la fonction anonyme interne. – Triptych

+0

on ne peut pas le passer à la fonction interne mais cela fonctionne parce que la fonction anonyme utilise l'étendue de la fonction externe. –

+0

Accéder à l'objet d'événement dans la fonction interne est douteux, mieux serait d'acquérir toutes les informations nécessaires de l'objet d'événement dans les variables de la fonction externe. – AnthonyWJones

1
var doSomething = function() { 
    //Some code will here after 3 seconds of mouseout 
}; 

anElement.onmouseout = function() { 
    setTimeout(doSomething, 3000); 
}; 

Ce que le code ci-dessus fait est d'exécuter la fonction doSomething après 3 secondes de la onmouseout étant invoquée