jquery-ui-dialog - tutorial - jquery ui dialog close button



jQuery-UI-Dialog-Überprüfen Sie, ob es eine Instanzmethode gibt (5)

Ich möchte eine instance verwenden, um zu testen, ob das Widget für das jQuery-UI-Dialogfeld initialisiert wurde oder nicht. In Bezug auf API ist dies möglich, aber es funktioniert nicht für mich:

Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'instance'

Demo: http://jsfiddle.net/mDbV7/

AKTUALISIEREN:

Dies war ein Fehler in der Dokumentation. Die instance ist ab Version 1.11.0 verfügbar. Siehe dieses Problem .

https://src-bin.com


Answer #1

Es ist auch eine gute Angewohnheit, Dialoge zu leeren und zu zerstören, wenn Sie sie nicht mehr benötigen. Ich verwende diesen Code normalerweise beim Schließen eines jeden Dialogs

$("#myDialog").dialog({
    // other options
    close: function(event, ui) {
        $(this).empty().dialog('destroy');
    }
}

Das wäre mein Rat, anstatt jedes Mal zu fragen, ob ein Dialog in einer Instanz vorhanden ist, sicherzustellen, dass jeder Dialog hinter sich aufräumt.


Answer #2

Für die jQuery-Benutzeroberfläche - v1.10.3

if($( "#myDialog" ).is(':data(uiDialog)')){//is(':data(dialog)') does not work
    //Dialog exist
}

Answer #3

Sie können verwenden:

if($('#id').is(':ui-dialog')) {
}

oder

    var obj = $('<div>test</div>').dialog();
    if (obj.is(':ui-dialog')) {
      alert('I\'m a dialog')
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>


Answer #4

Wenn Sie dieses Dialogfeld aus einer vorhandenen ID in Ihrem HTML-Code erstellen, wie im folgenden Beispiel:

$('#main').dialog({});

Beachten Sie, dass dialog() das ui-dialog der Klasse in einem übergeordneten <div> -Element hinzufügt, das für die Funktion erzeugt wurde. Beim #main -Element sind die durch dialog() hinzugefügten Klassen: ui-dialog-content und ui-widget-content (in jquery-ui-1.9.2). In diesem Fall können Sie also gemäß dem Beispiel von @jbabey den vorhandenen Dialog überprüfen:

if ($('#main').hasClass('ui-dialog-content')) {
    // do whatever
}

Answer #5
     if ($('#update').is(':data(dialog)')) 
     {
              //#update has dialog
     }
     else
     {
              //#update does't have dialog
     }




jquery-ui-dialog