首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新附加jQuery detach();

重新附加jQuery detach();
EN

Stack Overflow用户
提问于 2012-11-24 03:06:38
回答 8查看 73.2K关注 0票数 33

我已经分离了一个div,并希望在单击按钮时重新附加它。

代码如下:

代码语言:javascript
复制
$('#wrapper').detach();

$("#open_menu").click(function(){
    ATTACH HERE !!!
});

任何帮助都将不胜感激。

EN

回答 8

Stack Overflow用户

发布于 2012-11-24 03:08:09

代码语言:javascript
复制
var el = $('#wrapper').detach();

$("#open_menu").click(function(){
    $(this).append(el);
});
票数 58
EN

Stack Overflow用户

发布于 2014-04-03 20:21:03

我需要一个解决方案,即使在目标元素之后有其他元素要分离然后重新附加,它也可以工作。这意味着append可能不可靠,因为它会将该元素移回其父元素的末尾。我不得不使用占位符,这可能不是最优雅的解决方案,但我没有找到其他方法。

代码语言:javascript
复制
var $wrapper = $('#wrapper')
    , $placeholder = $('<span style="display: none;" />')
        .insertAfter( $wrapper )
    ;
$wrapper.detach();

$("#open_menu").on('click',function(){
    $wrapper.insertBefore( $placeholder );
    $placeholder.remove();
});

为了使其更具可重用性,最好将其封装在jQuery插件中:

代码语言:javascript
复制
(function($){

    $.fn.detachTemp = function() {
        this.data('dt_placeholder',$('<span style="display: none;" />')
            .insertAfter( this ));
        return this.detach();
    }

    $.fn.reattach = function() {
        if(this.data('dt_placeholder')){
            this.insertBefore( this.data('dt_placeholder') );
            this.data('dt_placeholder').remove();
            this.removeData('dt_placeholder');
        }
        else if(window.console && console.error)
        console.error("Unable to reattach this element because its placeholder is not available.");
        return this;
    }

})(jQuery);

用法:

代码语言:javascript
复制
var $wrapper = $('#wrapper').detachTemp();
$("#open_menu").on('click',function(){
    $wrapper.reattach();
});
票数 23
EN

Stack Overflow用户

发布于 2015-06-23 02:06:06

如果希望将项附加到元素的开头,可以使用.prepend()

否则,您可以使用append()附加它。

在您的情况下,它将是:

代码语言:javascript
复制
var $wrapper = $('#wrapper').detach();

$("#open_menu").click(function(){
    //ATTACH HERE !!!
    $(this).prepend($wrapper); // or $(this).append($wrapper);
});

我希望它能有所帮助:)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13534601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档