jQuery UI:未捕获的TypeError:无法读取未定义的属性“display”

时间:2013-10-29 12:57:20

标签: javascript jquery jquery-ui-dialog

我正在尝试使用jquery ajax获取数据,一切正常,我得到了我想要的东西,但我无法显示它因为我得到一个未捕获的TypeError:无法读取未定义的属性'display'。

这里的代码。有什么想法吗?

/*
 * Get the data from the ajax call and display a dialog
 */

function CreateDialog(email) {

    // get the data from the ajax call
    var promise = AjaxSubscribe(email)

    // if data are available, show the dialog
    promise.success(function (data) { 
        // data is a simple html code
        var dialog = $(data);

        // can't setup the dialog! Error
        // Uncaught TypeError: Cannot read property 'display' of undefined 
        dialog.dialog({
            autoOpen: false,
            modal: true,
            show: {
                effect: "blind",
                duration: 1000
            },
            hide: {
                effect: "explode",
                duration: 1000
            }
        });

        dialog.dialog( "open" );
        return false;
    });
}

这是数据的输出

 console.log(data)

 <p>Data debugging</p>
 <ul>
   <li>Ip address: 193.125.139.18</li>
   <li>Country Name: Italy</li>
   <li>Country Code: IT</li>
   <li>Email: anemail@gmail.com</li>
 </ul>

2 个答案:

答案 0 :(得分:7)

尝试将数据HTML包装在容器中,位于后端或前端:

var dialog = $('<div/>').html(data);

我不确定.dialog()是否适用于多个文档片段(您有<p><ul>内联)。 $(data)将是一个包含2个元素的数组,而不是.dialog()所期望的。

答案 1 :(得分:0)

请确保文件末尾没有空行。像Vim这样的编辑器自动添加一个空行来尊重POSIX标准Why would Vim add a new line at the end of a file? 使用Sublime,您可以显示此空行。