5

我正在尝试使用 jquery ajax 获取数据,一切正常,我得到了我想要的,但我无法显示它,因为我得到一个 Uncaught TypeError: Cannot read property 'display' of undefined。

这里是代码。任何想法?

/*
 * 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>
4

2 回答 2

7

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

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

我不确定.dialog()是否可以处理多个文档片段(你有一个<p>和一个<ul>内联)。$(data)将是一个包含 2 个元素的数组,这不是.dialog()预期的。

于 2013-10-29T13:00:26.810 回答
-1

确保文件末尾没有空行。像 Vim 这样的编辑器会自动添加一个空行以遵守 POSIX 标准为什么 Vim 会在文件末尾添加一个新行? 使用 Sublime,您可以显示这个空行。

于 2015-08-19T06:44:33.847 回答