jquery неопределенная ошибка IE - PullRequest
2 голосов
/ 23 ноября 2010

Итак, IE вызывает у меня проблемы, удивление, удивление ...

Я создаю диалоговое окно jquery (Div3), а затем внутри div3 я отображаю таблицу (Div4).Это отлично работает в Firefox.Однако в IE не отображается div 3, всплывающее окно.Вместо этого он возвращает ошибку «Unspecified error» и отображает только div4, таблицу.Код ниже ...

Я считаю, что ошибка где-то в выражении else.

Любая помощь приветствуется.Спасибо!

function displayMid(count) {
        var x = $("#Pid"+count).text();
        var y = $("#PidSeries"+count).text();
        //alert(x);
        if (x == 0) {
            return;
        }
        else if (y == null || y == " " || y == "") {
            $("#inputDiv3").html("").dialog('destroy');
            $("#inputDiv3").dialog({
                title: 'You must add the Product before you can assign catalogs!!!',
                width: 500,
                modal: true,
                resizable: false,
                buttons: {
                    'Close': function() { $(this).dialog('close'); }
                }
            });
        }
        else {
        $("#inputDiv3").dialog('destroy');
        $("#inputDiv3").html('<div style="height:300px;overflow-y:scroll;"><div id="inputDiv4"></div></div>').dialog({
            title: 'Catalog for ' + $("#PidTitle"+count).text(),
            width: 500,
            modal: true,
            resizable: false,
            open:   $.get('content_backend_pub_pid.ashx', { cmd: 4, pid: x }, function(o) {
                        $("#inputDiv4").html(o);
                    }),
            buttons: {
                'Close': function() { $(this).dialog('close'); }
            }
        });

        }

    }

Ответы [ 3 ]

4 голосов
/ 23 ноября 2010

Не уверен насчет этого, но я думаю, что вы должны обернуть вызов ajax для open: в анонимную функцию.

open: function(){ 
            $.get('content_backend_pub_pid.ashx', { cmd: 4, pid: x }, function(o) {
               $("#inputDiv4").html(o);
            });
},
1 голос
/ 23 ноября 2010

Обычно IE указывает номер строки для ошибки.У вас там много чего происходит, попробуйте разбить каждую часть на отдельный оператор в отдельной строке.Затем вы можете добавить консольные журналы между каждой строкой.

В общем, мне нравится создавать новую переменную и назначать ее свойству, или создавать новую локальную функцию, если свойство является функцией.

0 голосов
/ 23 ноября 2010

Кажется, проблема в вашей открытой функции. Может быть, попробуйте обернуть это в анонимную функцию следующим образом:

        $("#inputDiv3").html('<div style="height:300px;overflow-y:scroll;"><div id="inputDiv4"></div></div>').dialog({
            title: 'Catalog for ' + $("#PidTitle"+count).text(),
            width: 500,
            modal: true,
            resizable: false,
            open:   function() {
                        $.get('content_backend_pub_pid.ashx', { cmd: 4, pid: x }, function(o) {
                            $("#inputDiv4").html(o);
                        });
            },
            buttons: {
                'Close': function() { $(this).dialog('close'); }
            }
        });

В противном случае «get» срабатывает немедленно, а не когда вы действительно открываете диалоговое окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...