Плагин jQuery simplemodal: метод close () вызывает ошибку - PullRequest
0 голосов
/ 25 февраля 2011

при попытке закрыть диалоговое окно simplemodal, как я вижу в примерах веб-сайта плагина, это делается путем вызова

$.modal.close() or modal.close()

Но ни один из них не сработал для меня.Я получаю консоль:

Uncaught TypeError: Object #<an HTMLDivElement> has no method 'close' $.live.$.load.$.modal.onClose

Вот полный код.

$('.FinishUploadedFile').live('click',function(){

        $('<div id="modal"></div>').load('page?n=3',function(){

            $(this).modal({
                overlayClose: true,
                position: ['10%'],
                overlayOpacity:0,
                onOpen: function (dialog) {
                    dialog.overlay.fadeIn('normal', function () {
                        dialog.data.hide();
                        dialog.container.fadeIn('fast', function () {
                            dialog.data.slideDown('fast');
                        });
                    });
                },
                onClose: function (dialog) {
                    dialog.data.fadeOut('normal', function () {
                        dialog.container.slideUp('fast', function () {
                            dialog.overlay.fadeOut('fast', function () {
                                //Close the dialog.
                                modal.close();
                            });
                        });
                    });
                }
            });

        });

});

1 Ответ

0 голосов
/ 26 февраля 2011

Вы нигде не объявили modal. Вам нужно изменить modal.close(); на $.modal.close(); или изменить функцию onClose на:

onClose: function (dialog) {
    var modal = this; // <- add this line
    dialog.data.fadeOut('normal', function () {
        dialog.container.slideUp('fast', function () {
            dialog.overlay.fadeOut('fast', function () {
                //Close the dialog.
                modal.close();
            });
        });
    });
}
...