0

我有 2 个单独的有序列表,我想在一个对话框中显示它们,但由于某种原因,我得到了两个对话框。为什么是这样?

<ol>
 Test
 <li>a</li>
 <li>b</li>
</ol>

<ol>Test
 <li>a</li>
<li>b</li>
</ol>

      $.ajax({
        url: 'test.asp',
        data: vals,
        dataType: 'json',
        type: 'post',
        success: function(data){
          var $dialog = $(data.message)
          .appendTo('body')
          .dialog({
             modal: true
          });
        }
      });

以上产生2个对话框。

4

1 回答 1

0

像这样将它们包装成一个<div>

$.ajax({
    url: 'test.asp',
    data: vals,
    dataType: 'json',
    type: 'post',
    success: function(data){
        var $dialog = $("<div>").append(data.message)
        .appendTo('body')
        .dialog({
            modal: true
        });
    }
});

问题是由于您的响应中有两个有效的 HTML 字符串作为数组。当你调用 $(data.message) jQUery 创建两个单独<ol>的元素并将它们返回到一个数组中。然后,当您调用.dialog()数组时,每个元素都会成为对话框中的顶部节点。

于 2012-10-25T04:54:00.353 回答