4

ダイアログボックスをポップアップし、そのダイアログボックスから値を受け入れることができるようにするJQueryウィジェットを作成しました

ダイアログを定義する私の機能

 _ebSaveDialogue: function () {
     //Saving Dialogue
     $('#ebDialogueClose').click(function () {
         var text = $('#ebPlaceholder').val();
         returnText = text;
         $('#ebDialogue_div').dialog("close");
     });
 }

returnTextダイアログを閉じるときにhtmlページで値を取得するにはどうすればよいですか?

HTMLで変数を呼び出してみましたが、ダイアログが開いたり閉じたりしていないため、nullが返されます。ダイアログクローズ時にHtmlでデータを受け取りたい

ウィジェット

 $.widget('custom.DivPopUp', {

     //Call Constructor
     _create: function () {
         var returnText;
         this._ebDefineDiv();
     },

     _ebDefineDiv: function () {
         if ($("#ebDialogue_div").length == 0) {
             //Bringing Dialogue box
             $("body").append("<div id='ebDialogue_div' title='Expression Builder'></div>");
             var inDialogueDiv = "<div id='ebLeftPanel'></div><div id='ebRightPanel'></div>";
             inDialogueDiv += "<div id='ebSample_div' title='Sample'></div>";

             $('#ebDialogue_div').append(inDialogueDiv);

             this._ebCreateDialoge();
             this._ebSaveDialogue();
         }
     },
     _ebSaveDialogue: function () {
         //Saving Dialogue
         $('#ebDialogueClose').click(function () {
             var text = $('#ebPlaceholder').val();
             returnText = text;
             $('#ebDialogue_div').dialog("close");
         });
     }
 }(jQuery));

HTML

$('#Id').DivPopUp();
4

2 に答える 2

2

JQuery を使用して、カスタム イベントをトリガーできます。

あなたのコードによる例:

_ebSaveDialogue: function () {
     //Saving Dialogue
     $('#ebDialogueClose').click(function () {
         var text = $('#ebPlaceholder').val();
         returnText = text;
         $('#ebDialogue_div').dialog("close");
         $('#ebDialogue_div').trigger('save_action', returnText);
     });
 }

次に、スクリプトの他の任意のポイントから、そのイベントのイベント リスナーを設定します。

$('#ebDialogue_div').on('save_action', function(event, returnText){
    alert(returnText);
});
于 2013-05-22T12:21:45.900 に答える