【问题标题】:jQuery UI: Uncaught TypeError: Cannot read property 'display' of undefinedjQuery UI:未捕获的类型错误:无法读取未定义的属性“显示”
【发布时间】:2013-11-08 15:31:21
【问题描述】:

我正在尝试使用 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>

【问题讨论】:

  • data 从 ajax 调用返回时包含什么?
  • 出于某种原因,我不认为data 是您认为的那样。 console.log(data) 并分享输出!
  • 在问题中添加了数据输出。当然IP是假的:D

标签: javascript jquery jquery-ui-dialog


【解决方案1】:

尝试将您的数据 HTML 包装在一个容器中,无论是在后端还是前端:

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

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

【讨论】:

  • 这应该是解决方案。 jQuery UI 期望元素处于某种布局中,而当它们不是时会感到困惑。
  • 对!感谢您的回答,我在后端添加了 div,一切正常!
  • 我遇到了同样的问题,而 div 包装器就是解决方案。实际上对我来说,表单正在显示,但脚本在显示表单后立即崩溃并显示相同的错误消息。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2021-12-22
    相关资源
    最近更新 更多