将div作为jquery中的对话框分离并附加

时间:2012-09-07 17:10:40

标签: javascript jquery html dialog jquery-ui-dialog

我有一个带有一些id的div,其中包含一些按钮/标签。它本身就是一个容器。我想要一个按钮,当用户点击按钮时,对话框必须显示相同的div,但div必须从页面中消失。因此,当单击“分离”按钮时,会出现一个对话框,其中div和按钮更改为“附加”。单击附加时,对话框将消失,并且页面上会出现常规div。

这是我到目前为止所尝试的,它仅在单击Detach时有效,如果单击了Attach,则对话框关闭但是没有显示常规div。

   $(document).on('click', '#detach', function() {
      var button = $(this).text();
          if (button == 'Detach') {
           $('.search_div_box').dialog({ autoOpen: false, width: 700 });
           $('.search_div_box').dialog('open');
              $(this).html('Attach');
          } else if (button == 'Attach') {
             $('.search_div_box').dialog('close');
             $(this).html('Detach');
          }

      });

我知道我错过了附件中的代码它只关闭了对话框但我尝试了各种各样的事情,比如再次附加到div身上等等但是没有用。谢谢

3 个答案:

答案 0 :(得分:3)

您可以使用jQuery的$.clone()创建div的副本,然后将其与对话框一起显示/隐藏:

var $original = $('.search_div_box');
var $clone = $('.search_div_box').clone();
    $clone.dialog({
            autoOpen: false,
            width: 700,
        });

$(document).on('click', '#detach', function() {
    var button = $(this).text();

    if (button == 'Detach') {
        $original.hide();
        $clone.dialog('open');

        $(this).html('Attach');
    } else if (button == 'Attach') {
        $original.show();
        $clone.dialog('close');

        $(this).html('Detach');
    }
});​

JSFiddle Here

答案 1 :(得分:0)

试试这个:

HTML:

<button id="button">Attach</button>

javascript(jquery):

$("#button").click(function() {
    var button = $(this).html();
    if (button === "Attach") {
        $('.search_div_box').dialog('close');
        $(this).html('Detach');
    }
    else {
        $('.search_div_box').dialog({ autoOpen: false, width: 700 });
        $('.search_div_box').dialog('open');
        $(this).html('Attach');
    }
});

这应该有效:)

答案 2 :(得分:0)

试试这个:

HTML

<button class="content detach"></button>

CSS

.content.detach:after {
   content: "Detach";
}
.content.attach:after {
   content: "Attach";
}

JS

    $('.search_div_box').dialog({ autoOpen: false, width: 700 });
$(".content, .ui-dialog-titlebar-close").on("click", function(){
    if ($(".content").hasClass("detach")) {

        $('.search_div_box').dialog('open');
    } else {
        $('.search_div_box').dialog('close');
    }

    $(".content").toggleClass("detach attach");
});

样本: http://jsfiddle.net/n8Mbz/