Modales Jquery-Dialogfeld bei Klickereignis öffnen

Lesezeit: 3 Minuten

Benutzer-Avatar
Sumanta

Der folgende Code funktioniert nur für das erste Klickereignis. Bei jedem weiteren Klick passiert jedoch nichts. Ich habe dies auf Firefox getestet, dh7, aber immer noch dasselbe. Übersehe ich etwas?

<script type="text/javascript">
$(document).ready(function() {
    //$('#dialog').dialog();
    $('#dialog_link').click(function() {
        $('#dialog').dialog();
        return false;
    });
});
</script>    
</head><body>
   <div id="dialog" title="Dialog Title" style="display:none"> Some text</div>  
   <p id="dialog_link">Open Dialog</p>  
</body></html>

Benutzer-Avatar
almog.ori

Versuchen

$(document).ready(function () {
    //$('#dialog').dialog(); 
    $('#dialog_link').click(function () {
        $('#dialog').dialog('open');
        return false;
    });
});

Im letzten Teil gibt es ein offenes Argument

  • Tut mir leid, kein Glück 🙁 Ich habe eine Warnung (“kkh”); vor $(‘#dialog’).dialog(); gesetzt und es kommt gut, aber noch kein Fenster.

    – Sumanta

    8. Juni 2009 um 11:50 Uhr

  • Überprüfen Sie Ihre Referenzen auf der Clientseite, ich verwende Firebug, um zu überprüfen, ob es keine 404-Fehler gibt

    – almog.ori

    8. Juni 2009 um 11:56 Uhr

  • point @user20358 hat gerade das erste $(‘#dialog’).dialog();

    – almog.ori

    23. Februar 2012 um 18:56 Uhr

Versuche dies

    $(function() {

$('#clickMe').click(function(event) {
    var mytext = $('#myText').val();


    $('<div id="dialog">'+mytext+'</div>').appendTo('body');        
    event.preventDefault();

        $("#dialog").dialog({                   
            width: 600,
            modal: true,
            close: function(event, ui) {
                $("#dialog").remove();
                }
            });
    }); //close click
});

Und im HTML-Format

<h3 id="clickMe">Open dialog</h3>
<textarea cols="0" rows="0" id="myText" style="display:none">Some hidden text display none</textarea>

  • Tolle Lösung – gefällt mir!

    – Kerl

    6. Juli 2009 um 1:53 Uhr

  • Ja, die Funktion .remove() ist die Antwort auf meine Probleme. Als ich .close() aufrief, verursachte es das Problem.

    – IgorGanapolsky

    21. Januar 2011 um 21:20 Uhr

Benutzer-Avatar
Luca Welander

$(function() {

$('#clickMe').click(function(event) {
    var mytext = $('#myText').val();

    $('<div id="dialog">'+mytext+'</div>').appendTo('body');        
    event.preventDefault();

        $("#dialog").dialog({                   
            width: 600,
            modal: true,
            close: function(event, ui) {
                $("#dialog").hide();
                }
            });
    }); //close click
});

Verwenden Sie besser .hide() anstelle von .remove(). Mit .remove() gibt es undefiniert zurück, wenn Sie den Link einmal gedrückt haben, dann schließen Sie das Modal und wenn Sie den modalen Link erneut drücken, gibt es mit .remove undefiniert zurück.

Mit .hide() tut es das nicht und es funktioniert wie ein Kinderspiel. Ty für den Ausschnitt aus erster Hand!

  • Wenn Sie es einfach ausblenden, wird das #dialog div immer wieder angehängt

    – ymakux

    18. Dezember 2018 um 21:57 Uhr

Wenn Sie eine Seite in den Dialog einfügen möchten, können Sie diese verwenden

function Popup()
{
 $("#pop").load('login.html').dialog({
 height: 625,
 width: 600,
 modal:true,
 close: function(event,ui){
     $("pop").dialog('destroy');

        }
 }); 

}

HTML:

<Div id="pop"  style="display:none;">

</Div>

Benutzer-Avatar
Kalpesh Desai

Kann hilfreich sein… 🙂

$(document).ready(function() {
    $('#buutonId').on('click', function() {
        $('#modalId').modal('open');
    });
});

Benutzer-Avatar
dwlorimer

Versuchen Sie, diese Zeile vor Ihrer Dialogzeile einzufügen.

$( "#dialog" ).dialog( "open" );

Diese Methode hat bei mir funktioniert. Es scheint, dass der Befehl “Schließen” das erneute Öffnen des Dialogs mit nur dem .dialog() durcheinander bringt.

Wenn Sie Ihren Code als Beispiel verwenden, würde dies so aussehen (beachten Sie, dass Sie möglicherweise mehr zu Ihrem Code hinzufügen müssen, damit er Sinn ergibt):

    <script type="text/javascript">
$(document).ready(function() {
    //$('#dialog').dialog();
    $('#dialog_link').click(function() {
$( "#dialog" ).dialog( "open" );        
$('#dialog').dialog();
        return false;
    });
});
</script>    
</head><body>
   <div id="dialog" title="Dialog Title" style="display:none"> Some text</div>  
   <p id="dialog_link">Open Dialog</p>  
</body></html>

1054560cookie-checkModales Jquery-Dialogfeld bei Klickereignis öffnen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy