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

发布于 2024-10-19 08:47:31 字数 1416 浏览 1 评论 0原文

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

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

但没有一个对我有用来完成的。

在 Chrome 控制台上,我得到:

Uncaught TypeError: Object #没有“关闭”方法 $.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();
                            });
                        });
                    });
                }
            });

        });

});

when trying to close the simplemodal dialog, as I see in the plugin's website examples, it is done by calling

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

But non of them worked for me.

On Chrome console I get this:

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

Here is the full code.

$('.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();
                            });
                        });
                    });
                }
            });

        });

});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帥小哥 2024-10-26 08:47:31

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

You haven't declared modal anywhere. You'll need to change modal.close(); to $.modal.close(); or change your onClose function to:

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();
            });
        });
    });
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文