Abrar Kazi Ответов: 0

Как решить проблему "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 нажмите на нее появится сообщение об ошибке

0 Ответов