На моей веб-странице есть кнопка, которая открывает модальное диалоговое окно jQuery.Код, который запускается при нажатии кнопки, выглядит следующим образом:
$('#main-onoffline-container').append('<div id="dialog-modal-a"></div>');
$("#dialog-modal-a").dialog({
title:'Add Tags'
, autoOpen: false
, modal: true
, height: 540
, width:700
, close: function (ev, ui) { alert('closing'); }
,open: function() {
$("#dialog-modal-a").html('Some html will go here')
}
});
$("#dialog-modal-a").dialog("open");
Как видите, я добавляю div в DOM, а затем вызываю метод диалогового окна для вновь добавленного div.
Диалоговое окно открывается нормально и отображает HTML и кнопку закрытия X.Однако, когда я нажимаю кнопку X, чтобы закрыть диалоговое окно, оно не закрывается.Консоль показывает следующую ошибку из jquery-1.6.4.min.js:
Uncaught RangeError: Maximum call stack size exceeded
Кто-нибудь знает, в чем проблема?
ОБНОВЛЕНИЕ: После длительногосеанс Я обнаружил, что порядок определенных библиотек js влияет на это:
Если я включаю файлы следующим образом, возникает проблема:
<script src="../../Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.7.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script>
Если я включил файлы следующим образом, то проблемаисчезает:
<script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.7.min.js" type="text/javascript"></script>
Это кажется действительно странным - я подумал, что вы должны включить основной материал jQuery прямо вверху файла?
(валидат lib - плагин Jörn Zaefferer)
Я поднял другой вопрос, чтобы решить эту проблему: Библиотека jQuery включает порядок причин ошибки