Как решить проблему "uncaught rangeerror: превышен максимальный размер стека вызовов" в диалоговом окне jquery ?
объект DataTable :
"columns": [ { "data": "SupplierId", "name": "SupplierId" }, { "data": "SupplierPIPCode", "name": "SupplierPIPCode" }, { "data": "SupplierName", "name": "SupplierName" }, { "render": function (data, type, row, meta) { { "render": function (data, type, row, meta) { var a = '<a class="action-style"></a><a class="action-style"></a><a>'; return a; }, "orderable": false } ], function deleteDrugMapping(supplierDrugId, SupplierId, SupplierName) { $("#SupplierDrugMapDeleteDialog").dialog({ resizable: false, height: 220, width: 475, modal: true, buttons: { "Yes": function () { debugger; $(this).dialog("close"); //window.location.href = url; return false; }, "No": function () { $(this).dialog("close"); } } }); What I have tried: The above code first dynamically creates button onclick event where javascript function "deleteDrugMapping" is called . Inside "deleteDrugMapping()" dialog box is opened where on Yes button click i get this error , "Uncaught RangeError: Maximum call stack size exceeded." Error appears as soon as i click Yes button before any further execution of code. Please help.
Nathan Minier
Без знания функции CreateTable () это не очень значимо, особенно если там есть что-то рекурсивное.
Abrar Kazi
как я уже упоминал, ошибка возникает до того, как отладчик входит в вызов ajax . как только да вызывается он выдает ошибку
Nathan Minier
На самом деле, глядя на него, я вижу только некоторые незначительные синтаксические проблемы; есть пара завершающих запятых, которые бросают нулевые элементы в смесь. Я бы избавился от параметра "данные" в функции YES. Я бы объявил эту функцию как элемент данных, так как она выглядит как объектный метод, а не плоская функция.
т. е. "deleteDrugMapping": функция (supplierDrugId, SupplierId, SupplierName){
Наконец, если $.ajax никогда не вводится, я бы посмотрел и посмотрел, есть ли у вас глобальная привязка события dialogclose, которая может попасть в микс.
Abrar Kazi
Теперь я обновил вопрос нет ajax вызова нет других методов в диалоговом окне, но все же, когда отладчик приходит к да нажмите я бросает ту же ошибку.
F-ES Sitecore
Ваш код где-то попадает в бесконечный рекурсивный цикл, что-то вроде;
функция myFunc()
{
myFunc();
}
Abrar Kazi
Теперь я обновил вопрос нет ajax вызова нет других методов в диалоговом окне, но все же, когда отладчик приходит к да нажмите я бросает ту же ошибку.
F-ES Sitecore
Работает ли он без "debugger;"? Если это так, то это может быть какая-то причуда браузера, попробуйте сделать это с другим браузером, но если это причуда отладки браузера, то вы ничего не сможете с этим поделать.
Abrar Kazi
нет, он не работает без отладчика. Да, я пробовал с mozilla, и я не получил ошибку. Но я хочу решить эту проблему, я не могу просто оставить ее так.
Должно же быть какое-то решение.
F-ES Sitecore
Ну, я просто попробовал его в Chrome и IE, и он работал нормально.
Abrar Kazi
Что, возможно, пошло не так в моем коде ?
Если я удаляю вызов диалогового окна и просто вызываю Ajax он работает нормально но когда я вызываю Ajax внутри кнопки dilog box нажмите на нее появится сообщение об ошибке