Je travaille sur un menu déroulant jQuery qui apparaît lorsque vous passez la souris sur les éléments de niveau supérieur. Je veux le régler de telle sorte que lorsque vous déplacez la souris, le menu ne disparaît pas instantanément. J'ai ce code:Quitter le menu jQuery après un délai
$(document).ready(function(){
$('ul#menu > li').hover(
// mouseover
function(){
$(this).find('>ul').fadeIn('fast');
},
// mouseout
function(){
setTimeout(function(){
alert('fadeout');
$(this).find('>ul').fadeOut('fast')
}, 1000);
}
);
});
Après une seconde alerte se produit, mais le menu est pas estompé. Window.setTimeout(), donc cela fait référence à l'objet fenêtre.
Je pensais juste, cela pourrait être parce que « ce » points à autre chose dans la fonction 'setTimeout'? – DisgruntledGoat
Oui, c'est correct. Vous obtenez la fenêtre. – user120242
Vous pouvez utiliser '.children ('ul')' au lieu de '.find ('> ul')' btw. –