jquery未指定错误IE

时间:2010-11-22 21:06:14

标签: javascript jquery html internet-explorer

所以,IE给了我一些问题,惊喜,惊喜......

我创建一个jquery对话框(Div3),然后在div3中,我显示一个表(Div4)。这在firefox中运行良好。但是,在IE中它不显示div 3,即弹出窗口。相反,它返回错误“未指定的错误”,并仅显示表格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 个答案:

答案 0 :(得分:4)

不确定这一点,但我认为你应该在匿名函数中包含open:ajax调用。

open: function(){ 
            $.get('content_backend_pub_pid.ashx', { cmd: 4, pid: x }, function(o) {
               $("#inputDiv4").html(o);
            });
},

答案 1 :(得分:1)

通常IE指定错误的行号。你有很多事情要做,尝试将每个部分分解成一个单独的行中的声明。然后,您也可以在每一行之间输入控制台日志。

一般情况下,我喜欢创建一个新变量并将其赋值给属性,或者如果属性是函数,则创建一个新的局部函数。

答案 2 :(得分:0)

问题似乎在你的开放功能中。也许尝试将其包装在一个匿名函数中,如下所示:

        $("#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”将立即触发,而不是实际打开对话框时。