我試圖加載一個jsp文件到jQuery UI對話框http://jqueryui.com/demos/dialog/。 jsp包含一個fullCalendar http://arshaw.com/fullcalendar/日曆。控制檯呼籲calLoader.jsp這或多或少只包含:卸載/刪除或重新使用已加載javascript
<jsp:include page="../cal.jsp"/>
當我打開的對話框中的第一次,一切都運行得很好,但在我關閉對話框,然後再次嘗試打開它,我得到從Chrome中以下堆棧跟蹤:
Uncaught RangeError: Maximum call stack size exceeded
d.d.extend._Deferred.f.resolveWith
d.d.extend._Deferred.f.done
d.d.fn.d.ready
d.d.fn.d.init
d.d
(anonymous function)
d.d.extend.globalEval
ba
d.d.extend.each
d.fn.extend.domManip
d.fn.extend.append
d.fn.extend.html
d.fn.extend.load.d.ajax.complete
d.d.extend._Deferred.f.resolveWith
v
d.support.ajax.d.ajaxTransport.send.c
的問題是在Firefox相同的,但我得到的消息:
too much recursion
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
我意識到,我想更多的加載同樣的東西比一個和它不知何故需要重新使用或卸載/刪除和重新加載,但我不知道如何做到這一點。
這是我用來打開日曆(被請求)的代碼。
function openCalendar() {
var dialog = jQuery('<div id="calendaropener"></div>')
.dialog({
autoOpen: false,
draggable: true,
modal: false,
resizable: false,
width: 820,
height: 750,
position: [50, 50],
title: 'Kalender',
close: function(ev, ui) { calendarObj = null; }
});
dialog.load("calLoader.jsp");
dialog.dialog('open');
}
函數openCalendar()是從我的頁面上的按鈕調用的。 謝謝!
你應該發佈你用來加載對話框的代碼。如果您使用jQuery進行加載,它通常會爲您調用「.empty()」。 – Pointy
添加了我用來打開對話框的jquerycode。 –