2011-03-22 73 views
1

我打開一個使用jQuery的對話框。當我嘗試關閉對話框,它拋出一個js errorJS錯誤:在jquery-1.4.4.js中遞歸太多

"Error: too much recursion Source File: 

http://localhost:8080/testProject/scripts/jquery-1.4.4.js 線:648"

的用於對話功能如下:

jQuery(function() { 

     jQuery("#purchaseOrderDevice-form").dialog({ 
      bgiframe:true, 
      autoOpen: false, 
      height: 550, 
      width: 870, 
      modal: true, 
      resizable : true, 

      close: function() { 
       jQuery("#purchaseOrderDevice-form").dialog("close"); 
      } 

     }); 

     jQuery("#purchaseOrderDevice").button().click(function() { 
       jQuery("#purchaseOrderDevice-form").dialog("open"); 
     }); 
    }); 
+2

您可以使用'jQuery(this).dialog(「close」);'而不是'jQuery(「#purchaseOrderDevice-form」).dialog(「close」);' – CoolEsh 2011-03-22 10:11:51

+0

感謝您的回覆。根據你的建議更改了代碼,但沒有成功。 – Saurabh 2011-03-22 10:23:23

+0

您將創建一個無限循環,告訴對話框每當您告訴它關閉時關閉。關閉事件意味着對話已經關閉。你想把「關閉」命令放在一個按鈕上。 – Bob 2011-03-22 10:27:50

回答

3
jQuery("#purchaseOrderDevice-form").dialog({ 
      bgiframe:true, 
      autoOpen: false, 
      height: 550, 
      width: 870, 
      modal: true, 
      resizable : true, 

      close: function() { 
      }, 
      buttons: { 
       'Close': function() { 
        $(this).dialog("close"); 
       } 
      } 

     }); 

這是應該怎麼做 - 不要告訴它每當它關閉時關閉,否則你會得到一個循環。

0

您應該刪除此代碼

jQuery("#purchaseOrderDevice-form").dialog("close"); 

因爲當你調用close: function() {}該對話框已關閉,所以當你嘗試再次關閉,這將導致錯誤

希望這有助於