2010-10-06 6 views
2

J'ai un petit problème à fermer ma boîte de dialogue en JavaScript/jQuery à la sortie de la souris. ici est le scriptjquery-ui close dialog

$().ready(function() { 
    $(".popup").live("mouseover", function() { 

     $(this).next().dialog(); 
    }); 
    $(".popup").live("mouseout", function() { 

     $(this).next().close(); 
    }); 
}); 

Répondre

3

Quelque chose comme cela fonctionnera:

$(function() { 
    $(".popup").live("mouseover", function() { 
    var dlg = $.data(this, 'dialog'); 
    if(dlg) dlg.dialog('open'); 
    else $.data(this, 'dialog', $(this).next().dialog()); 
    }).live("mouseout", function() { 
    $.data(this, 'dialog').dialog('close'); 
    }); 
}); 

Pourquoi est-il si compliqué? Bien l'appel .dialog() encapsule l'élément et le place à la fin de l'élément <body>, donc .next() ne le trouvera plus. Donc ... nous avons besoin de stocker une référence à la boîte de dialogue correspondante.

Une alternative serait de positionner le dialogue et de le coller dans le DOM d'une manière relative lors de la création, de toute façon fonctionne.

+0

Merci, cela a fonctionné :) – Kimtho6

+0

@Profeten - bienvenue :) –

Questions connexes