jquery ajax响应未在jqueryui对话框窗口中显示

时间:2011-06-06 17:04:26

标签: jquery ajax

我想在点击链接时显示博客详情。

这是我的代码的一部分。

“。ajax”part

    $.ajax({
        url: 'someurl',
        dataType: 'json',

        success: function( response ) {
            $( '#viewDialog > h1' ).html( response.title );
            $( '#viewDialog > p' ).html( response.content );

            $( '#viewDialog' ).dialog( 'open' );
        }
    });

“。html”part

<div id="viewDialog" title="My Blog">
    <h1></h1>
    <p></p>
</div>

我很确定我以正确的json格式从服务器获得响应。 像这样的东西 {"id":"120","title":"My new stuff","content":"Someting new","author_id":"11"}

当我点击链接时,对话窗口加速,但窗口中没有显示任何信息。

我做对了吗?

米洛

2 个答案:

答案 0 :(得分:2)

几乎从表面看来 - 试试这个:

$.ajax({
    url: 'someurl',
    dataType: 'json',
    success: function( response ) {
        $( '#viewDialog > h1').html( response.title );
        $( '#viewDialog > p' ).html( response.content );

        $( '#viewDialog' ).dialog( 'open' );
    }
});

你没有定义我能看到的blogDetail的ID。看起来您正在尝试将HTML放入viewDialog中。

答案 1 :(得分:1)

您提供的HTML中没有ID为blogDetail的元素。

问题更新后修改:

'open'传递给对话框调用只有在先前创建对话框时才有效。

$( '#viewDialog' ).dialog({autoOpen:false});放在jQuery脚本的顶部应该可以使它工作。

或者您只需删除“打开”参数,然后只需拨打$( '#viewDialog' ).dialog();

即可

Demo using { autoOpen : false }

Demo without Passing 'open'