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()複数のドキュメントフラグメントで機能するかどうかはわかりません( a<p><ul>inline があります)。$(data)期待されるものではない2つの要素を持つ配列になります.dialog()

于 2013-10-29T13:00:26.810 に答える
-1

ファイルの最後に空行がないことを確認してください。Vim のような一部のエディターは、POSIX 標準を尊重するために空の行を自動的に追加しますなぜ Vim はファイルの最後に新しい行を追加するのでしょうか? Sublime を使用すると、この空の行を表示できます。

于 2015-08-19T06:44:33.847 に答える