تحميل - jquery tutorial



jquery ui: لا يمكن استدعاء أساليب في مربع الحوار قبل التهيئة؛ حاول استدعاء طريقة "إغلاق" (4)

أنت تخسر سياق this بمجرد أن تكون داخل $.post() . قبل $ .post ، احفظ السياق في متغير داخل وظيفة زر الحفظ .

$('#dialog-form').dialog({
     // .....
     buttons: {
        'save': function() { 

            var $this = $(this); 
                      // -this- is still the original context 
                      // of $("#dialog-form")

            $.post({
               /// ...
               $this.dialog('close'); // <-- used here
            });
        }       
    }
});

أنا أستخدم مربع حوار jquery ui ، يمكنني تنزيله من موقع jquery ui ، والإصدار jquery-ui-1.10.2.custom.min.js ، و jquery هو jquery-1.9.1.js الذي يحتوي على jquery ui js ، ولكن الآن أواجه سؤالاً: عند فتح مربع الحوار والنقر على زر الحفظ ، أريد أن يتم إغلاق مربع الحوار ، وإليك الكود:

$(function(){
 $("#dialog-form").dialog({
     autoOpen: false,
     height: 350,
     width: 450,
     modal: true,
     buttons: {
       "save": function() {
           if(!checkDept()){
               return ;
           }
           $.post('dept_save.do', 
                 {'dept.deptId':$("#dialog_dept_deptId").val(), 
                  'dept.deptName':$("#dialog_dept_deptName").val(),
                  'dept.manager':$("#dialog_dept_manager").val(),
                 },function(data, status, xhr){
                     if(status == 'success'){
                         alert('save success');
                         $(this).dialog("close");
                     }else{
                         alert('error:'+data);
                     }
                  }
                 ,"json");
       }
     },
     close: function() {
         $(this).dialog("close");
     }
   });

     /* to open dialog*/
    $("#add").click(function(){
        $("#dialog-form").dialog("open");
    });

الآن عندما أغلق مربع الحوار المنبثق "حفظ النجاح" ، لم يتم إغلاق مربع حوار مربع الحوار ، وحدث خطأ:

خطأ Uncaught: لا يمكن استدعاء أساليب في مربع الحوار قبل التهيئة؛ حاول استدعاء طريقة "إغلاق" jquery-1.9.1.js: 507.

وهناك خطأ آخر:

لم يتم اكتشاف SyntaxError: رمز غير متوقع o jquery-1.9.1.js: 541

شكر.


اضطررت إلى القيام بما يلي لإغلاق مربع حواري.

 $("#Note").dialog({
        autoOpen: true,            
        modal: true,
        create: function (e, ui) {
          //
        },
        open: function () {
            //
        },            
        buttons: {
                //
                $(".ui-dialog-titlebar-close").trigger('click');
            }
        }
    });

عند تهيئة مربع حوار عن طريق استدعاء طريقة .dialog(options) ، يتم إنشاء مربع حوار جديد ، ولكنه لا يرتبط .dialog(options) الأصلي الذي تريد تحويله إلى مربع حوار ("نموذج الحوار #" في نموذج التعليمات البرمجية). ترجع الدالة dialog(options) العنصر الذي يحتوي على بيانات الحوار. لذلك ، إذا كنت تفعل ذلك بهذه الطريقة:

var myDialog = $("#dialog-form").dialog(options);

يمكنك بعد ذلك الاتصال بالطريقة المفتوحة مثل هذا:

myDialog.dialog('open');

إذا كنت ترغب في العثور على العنصر الذي يتطابق مع مربع الحوار ، فهو أقرب قسم مع فئة "ui-dialog-content":

var myDialog = $('#dialog-form').closest('div.ui-dialog-content');

بيانات الحوار هي بيانات uiDialog التي ستراها إذا نظرت إلى بيانات هذا العنصر:

myDialog.data();

لا يستهدف $(this) مربع حوار داخل $.post ، فستحتاج إلى تخزين مرجع إليه.

var self = this; // add this
$.post(..., function(){
    $(self).dialog("close"); // modify this to use self




jquery-ui