2011-02-25 34 views
0
試圖關閉simplemodal對話,正如我在插件的網站的例子看的時候

,它是通過調用jQuery的simplemodal插件:close方法()導致錯誤

$.modal.close() or modal.close() 

但他們不工作了做我。

在Chrome控制檯我得到這個:

Uncaught TypeError: Object #<an HTMLDivElement> has no method 'close' $.live.$.load.$.modal.onClose

下面是完整的代碼。

$('.FinishUploadedFile').live('click',function(){ 

     $('<div id="modal"></div>').load('page?n=3',function(){ 

      $(this).modal({ 
       overlayClose: true, 
       position: ['10%'], 
       overlayOpacity:0, 
       onOpen: function (dialog) { 
        dialog.overlay.fadeIn('normal', function() { 
         dialog.data.hide(); 
         dialog.container.fadeIn('fast', function() { 
          dialog.data.slideDown('fast'); 
         }); 
        }); 
       }, 
       onClose: function (dialog) { 
        dialog.data.fadeOut('normal', function() { 
         dialog.container.slideUp('fast', function() { 
          dialog.overlay.fadeOut('fast', function() { 
           //Close the dialog. 
           modal.close(); 
          }); 
         }); 
        }); 
       } 
      }); 

     }); 

}); 

回答

0

您還沒有在任何地方聲明modal。你需要改變modal.close();$.modal.close();或更改onClose功能:

onClose: function (dialog) { 
    var modal = this; // <- add this line 
    dialog.data.fadeOut('normal', function() { 
     dialog.container.slideUp('fast', function() { 
      dialog.overlay.fadeOut('fast', function() { 
       //Close the dialog. 
       modal.close(); 
      }); 
     }); 
    }); 
} 
+0

Eric,你好,謝謝。最後選擇了'$ .modal.close();'解決方案 – Hernantz