0

モーダル ウィンドウを作成する jQuery プラグインを開発しているので、非表示にした要素を元の状態に戻したいと考えています。

誰かが私を助けることができますか?

ありがとう!

- - アップデート - -

ごめん、

要素htmlを表示するときにどこかに保存し、非表示にするときに保存したデータを元に戻したいです。

これは私のプラグインです:

(function ($) { // v2ui_modal
    var methods = {
        show: function (options) {
            var _this = this;

            var defaults = {
                showOverlay: true,
                persistentContent: true
            };

            var options = $.extend(defaults, options);

            if (!_this.attr('id')) {
                _this.attr('id', 'v2ui-id_' + Math.random().toString().replace('.', ''));
            }

            if (options.showOverlay) {
                $('<div />', { // overlay
                    id: 'v2-ui-plugin-modal-overlay-' + this.attr('id'),
                    css: {
                        zIndex: ($.topZIndex() + 1),
                        display: 'none',
                        position: 'fixed',
                        width: '100%',
                        height: '100%',
                        top: 0,
                        left: 0
                    }
                }).addClass('v2-ui').addClass('plugin').addClass('overlay').appendTo('body');
            };

            _this.css({
                zIndex: ($.topZIndex() + 2),
                position: 'fixed'
            });

            _this.center();

            $('#v2-ui-plugin-modal-overlay-' + _this.attr('id')).fadeIn(function () {
                _this.fadeIn();
            });
        },

        hide: function () {
            var _this = this;

            _this.fadeOut();

            $('#v2-ui-plugin-modal-overlay-' + _this.attr('id')).fadeOut(function () {
                $('#v2-ui-plugin-modal-overlay-' + _this.attr('id')).remove();
                if ((_this.attr('id')).substr(0, 8) == 'v2ui-id_') {
                    _this.removeAttr('id');
                };
            });
        }
    };

    jQuery.fn.v2ui_modal = function (methodOrOptions) {
        if (methods[methodOrOptions]) {
            methods[methodOrOptions].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof methodOrOptions === 'object' || !methodOrOptions) {
            methods.show.apply(this, arguments);
        };
    };
})(jQuery);
4

1 に答える 1

1

をご覧いただけますjQuery.detach

.detach() メソッドは、.detach() が削除された要素に関連付けられたすべての jQuery データを保持することを除いて、.remove() と同じです。このメソッドは、削除された要素を後で DOM に再挿入する場合に便利です。

しかし、私はあなたの問題を完全に理解するのに苦労しているので、私の答えがあなたの質問に合わない場合は申し訳ありません.

于 2012-08-17T08:48:34.427 に答える