1

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

这是我到目前为止所尝试的,它仅在单击分离时起作用,如果单击附加,则对话框关闭但常规 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 附加到正文等等,但没有奏效。谢谢

4

3 回答 3

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 这里

于 2012-09-07T17:29:35.633 回答
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');
    }
});

那应该工作:)

于 2012-09-07T17:23:45.420 回答
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/

于 2012-09-07T17:27:11.467 回答