JQuery对话框帮助显示2个对话框

时间:2012-10-25 04:07:12

标签: jquery

我有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个对话框。

1 个答案:

答案 0 :(得分: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()时,每个元素都会成为对话框中的顶级节点。