3

我正在使用下面的代码创建一个 Jquery-UI 对话框。

 var dynDiv = document.createElement("div");
       document.getElementById("divparent").appendChild(dynDiv);
      dialog_box(dynDiv, buttons);


      function dialog_box(dynDiv, dialog_buttons) {    
        $.each(dialog_buttons, function (index, props) {
            $("#" + dynDiv.id).append('<span id="btn' + dynDiv.id + props.id + '">' + props.text + '</span>');
            $('#btn' + dynDiv.id + props.id).button().on("click", {
                param: props,divid: dynDiv.id
            }, props.handler);


        });


    $("#" + dynDiv.id).dialog({
        modal: true,
        appendTo: "#divparent",
        show: "puff",hide: "explode",resizable: true,closeOnEscape: false,
        minWidth: 200, 
        minHeight: 150

    });        

http://jsfiddle.net/DOmEl/qNGEw/41/ 根据这个应该创建一个 jquery 对话框并附加到 divparent。但它没有按预期附加,它创建了一个单独的节点并形成了对话框。谁能弄清楚我在哪里做错了?

4

1 回答 1

3

该对话框实际上做了 appendTo #divparent1。问题似乎是它的位置是绝对的。

尝试更改位置#divparentabsolute再次应用此修复:

$("#" + dynDiv.id).dialog({
    modal: true,
    appendTo: "#divparent1",
    show: "puff",
    hide: "explode",
    resizable: true,
    closeOnEscape: false,
    minWidth: 200,
    minHeight: 150,
    position: { my: "left top", of: "left top"}
});

你可以在这里查看结果:http: //jsfiddle.net/qNGEw/46/

于 2014-01-07T06:14:51.677 回答