Comment savoir si un dialogue jquery est ouvert? [dupliquer]
Cette question a déjà une réponse ici:
recherche d'une solution de cas général pour déterminer si une boîte de dialogue jquery (il y en a plusieurs) est actuellement ouverte. Ont essayé:
$(".ui-dialog-content").dialog("isOpen") === true
$(".ui-dialog").dialog("isOpen") == true
$(document).dialog("isOpen") == true
$("*").dialog('isOpen') == true
sans succès. Je m'attendais ".ui-dialog-contenu" à travailler, puisque je peux apparemment, fermez tout dialogue ouvert avec ce sélecteur, mais ce n'est pas le cas.
5 réponses
vous pouvez essayer
if($(".ui-dialog").is(":visible")){
//dialog is open
}
jQuery UI dailog a une méthode isOpen
qui retourne true si le dailog est ouvert. Appeler l'élément qui a ouvert la boîte de dialogue.
$('.ui-dialog-content').dialog("isOpen");
selon la documentation de L'API, vous devez utiliser
$( ".selector" ).dialog( "isOpen" )
pour déterminer si la boîte de dialogue est ouverte ou non. La fonction renvoie un booléen. Par exemple,
if( $("selector").dialog("isOpen")===true ){
/*do stuff when dialog is open*/
} else {
/*do stuff when dialog is closed*/
};
vérifiez si elle est affichée ou non via CSS? Je ne sais pas si c'est la bonne approche, mais je pense que ça va marcher.
$(".ui-dialog").css('display') != "none"
$('html').click(function() {
x++;
if(x==2){
$(".ui-dialog-titlebar-close").trigger("click");
x=0;
}
});
celui-ci fonctionnera dans tous les cas, où vous appelez Dialog à partir de DOM.