jQuery simplemodal插件:close()方法导致错误

时间:2011-02-25 14:47:20

标签: jquery jquery-plugins simplemodal

当我尝试关闭simplemodal对话框时,正如我在插件的网站示例中看到的那样,它是通过调用

来完成的。
$.modal.close() or modal.close()

但他们没有为我工作。

在Chrome控制台上我得到了这个:

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 :(得分:0)

您尚未在任何地方声明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();
            });
        });
    });
}