Wie binden von Ereignissen an Komponenten auf ein Modaler dialog?

Ich bin mit jQuery modal-dialog für die Eröffnung ein dialog mit einem Formular. Was ich nicht lösen kann ist, wie binden von Ereignissen an Komponenten Hinzugefügt werden, ist mein modales Dialogfeld. In diesem Fall, will ich mich binden auf oder wechseln Sie auf ein Markierungsfeld, das sich im dialog. Es scheint nicht zu sein, jeder Erfolg-Methode, die ausgelöst wird, wenn der dialog geladen wurde. Dies ist, wie ich es mache:

Dies Tue ich in den Anfang von meinem javascript am Anfang der ready-Funktion:

$( "#dialog:ui-dialog" ).dialog( "destroy" );

$( "#dialog-modal" ).dialog({
    autoOpen: false,
    show: "blind",
    hide: "explode",
    minWidth: 400,
    modal: true
 });

Etwas später habe ich dies tun, wenn ein Klick auf eine Schaltfläche:

$('#dialog-modal').dialog( "option", "title", lang.localized_text.ADD_AGENT);
$('#dialog-modal').live('dialogopen', function(msg){
        alert("Opens");
        $("#select_all").live('click', function(msg){
               alert("clicked");  
        });

 });
$.get("https://" + hostname +  "/modules/core/useradmin/adminactivities/admin_add_agent.php",function(e){
     var obj = $.parseJSON(e);
     $("#dialog-modal").html(obj.html);
     $("#dialog-modal").dialog("open");
     addAddAgentValidation();
}
});

Kann man deutlich sehen, dass alert("Öffnet") dargestellt wird, bevor das Dialogfeld wird geöffnet. Daher dialogopen wird ausgelöst, bevor das Dialogfeld fertig geladen ist. Aber die validation-handler (ruft die Funktion validiert die Bindung der Validierung überprüft) funktioniert.

alert("geklickt"); wird nie ausgelöst.

Wie kann ich binden jedes Ereignis einer Komponente auf den modal-dialog? Gibt es eine callback-Funktion, wenn das Dialogfeld erstellt wurde.

  • Welche version von jQuery verwenden Sie live ist veraltet 1.7. Auch binden Sie es auf offen heißt, wenn es mehr als einmal geöffnet, halten Sie Ereignisse hinzufügen, um die Elemente zu jeder Zeit.
  • Sollten Sie die jQuery UI-dialog-Ereignis : jqueryui.com/demos/dialog/#event-open Plus, $.live() ist veraltet, denke ich.
  • live ist veraltet, aber es funktioniert immer noch...
  • ich kann nicht scheinen, um dies zu erschaffen Problem --und veraltet != nichtfunktionalen @Shikiryu - Er ist mit dem event. Hast du auch seinen Quellcode? $('#dialog-modal').live('dialogopen' ist, was vorgeschlagen wird, binden mit. Er .live() statt .bind() die funktioniert wie vorgesehen, sowieso.
  • Ich bin mit jquery 1.7.2. @Shik, das ist der link, den ich in meiner post. Die überprüfung Ihrer jsfiddle jetzt. Es ist ein Unterschied, wie, um den Inhalt im Vergleich zu wie ich es mache, kann das einen Unterschied machen?
  • Ich denke, es muss damit zusammenhängen, wie füge ich meine html. Check out this jsfiddle, was ich geändert habe ist, wie der HTML-Code wird Hinzugefügt, um den dialog, so ist es ähnlich wie mein code. Ich denke, das ist es, was ich brauche, um sich zu Sortieren.
  • Vielen Dank an alle, ich glaube es war irgendeine Art von Konflikte am Ende. Tut mir Leid, dass. Abstimmung, um zu löschen auf diese Frage.

InformationsquelleAutor Nicsoft | 2012-07-24
Schreibe einen Kommentar