2016-07-11 14 views
1

Hallo Ich benutze JQUERY Dialog für ein Bestätigungs-Popup. Ich habe eine gemeinsame Javascript-Datei, in der ich eine Funktion hatte, die window.ShowModalDialog aufgerufen hat. Nun rufe ich von der gleichen Funktion das jquery-Dialogfeld auf, aber da es ein asynchroner Aufruf ist, gibt die aufrufende Funktion den Wert (ja/nein) zurück, ohne Werte aus dem Dialog zu übernehmen. Wie kann ich den richtigen Wert zurück (ja/nein)Jquery Dailog gibt den angegebenen Benutzerwert für das Bestätigungs-PopUp nicht zurück.

Antwort

0

Wenn ich das Problem richtig verstanden habe ... und wenn etwas nicht in Ordnung ist, fügen Sie das Beispiel des Codes

Versuchen Sie, diese Muster mit:

(function ($, undefined) { 
    $.fn.dialog = function (options) { 
     options = $.extend({}, $.fn.dialog.options, options); 
     return this.each(function() { 
      var dialog = $(this); 
      dialog.children(".ok").click(function (e) { 
       options.ok.call(this, e); 
       dialog.close(); 

      }); 
      dialog.children(".close").click(function (e) { 
       options.close.call(this, e); 
       dialog.close(); 

      }); 

     }); 
    }; 

    $.fn.open = function() { 
     this.get(0).showModal(); 
    }; 

    $.fn.close = function() { 
     this.get(0).close(); 
    }; 

    $.fn.dialog.options = { 
     ok : function() {}, 
     close : function() {} 
    }; 
})(jQuery); 

und mit Rückruf

var dialog = $(".myDialog").dialog({ 
     ok : function() { 
      alert("ok!!"); 
     } 
    }); 

alles Haben Sie in Rückruf benötigen, aber callbackhell vermeiden.

siehe example