1
        $(settings.widgetSelector, $(settings.columns)).each(function () {
        var thisWidgetSettings = iNettuts.getWidgetSettings(this.id);
        if (thisWidgetSettings.removable) {
            $('<a href="#" class="remove">CLOSE</a>').mousedown(function (e) {
                /* STOP event bubbling */
                e.stopPropagation();    
            }).click(function () {
                if(confirm('This widget will be removed, ok?')) {
                    $(this).parents(settings.widgetSelector).animate({
                        opacity: 0    
                    },function () {
                        $(this).wrap('<div/>').parent().slideUp(function () {
                            $(this).remove();
                            iNettuts.savePreferences();
                        });
                    });
                }
                return false;
            }).appendTo($(settings.handleSelector, this));
        }

基本上现在,当单击“关闭”时,此代码会完全删除内容。我宁愿做的是将它移动到不同的div。我正在阅读有关 prependTo 的信息。我认为这就像改变一样简单:

$(this).remove();

至:

$(this).prependTo('.dock');

但似乎没有那么简单。这只是将其删除。完整代码

4

2 回答 2

1

这将保留原始元素:

$('yourElement').clone().appendTo('whereverYouWant');

jsBin 演示


如果您想将其从原来的位置移除:

$('yourElement').appendTo('whereverYouWant');

jsBin 演示

如同:

$('yourElement').remove().clone().appendTo('whereverYouWant');
于 2012-07-20T22:58:55.633 回答
1

试试jQuery detach,因为 remove 也会删除所有元素的引用。

    $(settings.widgetSelector, $(settings.columns)).each(function () {
    var thisWidgetSettings = iNettuts.getWidgetSettings(this.id);
    if (thisWidgetSettings.removable) {
        $('<a href="#" class="remove">CLOSE</a>').mousedown(function (e) {
            /* STOP event bubbling */
            e.stopPropagation();    
        }).click(function () {
            if(confirm('This widget will be removed, ok?')) {
                $(this).parents(settings.widgetSelector).animate({
                    opacity: 0    
                },function () {
                    $(this).wrap('<div/>').parent().slideUp(function () {
                        $(this).detach().prependTo('.dock');
                        iNettuts.savePreferences();
                    });
                });
            }
            return false;
        }).appendTo($(settings.handleSelector, this));
    }
于 2012-07-20T22:49:46.337 回答