不能在jQuery对话框中加载AJAX内容

Can't load AJAX content in jQuery dialog

本文关键字:加载 AJAX 内容 对话框 jQuery 不能      更新时间:2023-09-26

我得到了这个动态创建的JQueryUI对话框从这个线程通过Ajax从<a href='2.html'>加载内容。但是我发现下面的代码有问题。即使AJAX请求成功发出(如控制台所示),内容也不能追加到对话框容器中。谁能找出这一行的load函数有什么问题吗?

dialog.load($(this).attr('href') + ' #content').dialog

我试过了

dialog.append($(this).data('source') + ' #content').dialog
dialog.text($(this).data('source') + ' #content').dialog

,他们工作。

代码:

var loading = $('<img src="http://upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif" alt="loading" class="loading">');
$(document).ready(function () {
   $(document).ready(function () {
      $('button').click(function () {
       $(this).next('.area').append('<a id="open_dia_'+Date.now().toString()+'"  class="open_dia" title="this title" href="2.html">Click</a>');
   });
    $(document).on('click', '.open_dia', function (evt) {
        var dialogid = 'dialog_'+$(this).attr('id');
        var dialog = null;
        if ($('#'+dialogid.toString()).length == 0)
        {
            dialog = $('<div id="'+dialogid+'"></div>').append(loading.clone());
            dialog.load($(this).attr('href') + ' #content').dialog({
                title: $(this).attr('title'),
                width: 500,
                height: 300
            });
        }
        else
        {
            dialog = $('#'+dialogid.toString());
        }

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

你可以这样做:

创建一个div,其中一个div将用于附加内容。

<div id="dialogDiv" title="this title" style="display:none;">
  <div id='dialogDivDynamic'></div>
</div>    

转换对话框中的第一个div:

$("#selectionResult").dialog({
        modal: true,
        width: '900px',
        buttons: [{ text: "Close", click: functionToCloseDialog() }]
});

将内容追加到第二个div:

$('#dialogDivDynamic').append("This is my new content");
function functionToCloseDialog() {
  $('#dialogDiv').dialog('close');
}

似乎在您的散列之前有一个空格…试试这样:

dialog.load($(this).attr('href') + '#content').dialog({
  title: $(this).attr('title'),
  width: 500,
  height: 300
});