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

removeはすべての要素の参照も削除するため、jQuerydetachを試してください。

    $(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 に答える
1

これにより、元の要素が保持されます。

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

jsBinデモ


元の場所から削除する場合:

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

jsBinデモ

と同じ:

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