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.

17
demandé sur lamont 2012-02-03 18:52:28

5 réponses

vous pouvez essayer

if($(".ui-dialog").is(":visible")){
//dialog is open
}
29
répondu Rafay 2012-02-03 14:59:09

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");

reference: http://jqueryui.com/demos/dialog/#method-isOpen

2
répondu ShankarSangoli 2012-02-03 15:04:41

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*/
};
2
répondu Touhid Alam 2015-04-06 16:22:11

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"
0
répondu thenetimp 2012-02-03 14:56:51
$('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.

-1
répondu user3801263 2015-04-03 14:04:56