jquery - 在 jQuery UI 对话框的 beforeClose 上延迟关闭事件

标签 jquery jquery-ui css animation jquery-ui-dialog

我有以下代码,在 .in.out 类上运行 CSS 动画。 我的问题是对话框立即关闭,您根本看不到关闭动画的发生。所以在关闭对话框之前我需要大约 500 毫秒的延迟;

$.extend( $.ui.dialog.prototype.options, { 
    modal: true, 
    open: function() { 
        $(this).parents('.ui-dialog').removeClass('out').addClass('in'); 
    }
});

$confirm.dialog({

    buttons: {

        "ok": {
            text:'Ok',
            click: function() { $(this).dialog('close'); }
        },

        "cancel": {
            text:'Cancel',
            click: function() { $(this).dialog('close'); }
        }
    },

    beforeClose: function(event, ui) {

        $('.ui-dialog').removeClass('in').addClass('out');

    }

}).dialog('widget').appendTo('.dialogWrapper');

我尝试将 return false 添加到 beforeClose 中,然后手动调用 .dialog('close') 函数,但它只是运行无限循环,手动隐藏对话框似乎是浪费代码(更不用说对话框的覆盖层也需要删除)

对于此事,我将不胜感激。

硅。

最佳答案

这是未经测试的,但我想像这样的东西会让你到达你想去的地方???

$.extend( $.ui.dialog.prototype.options, { 
    modal: true, 
    open: function() { 
        $(this).parents('.ui-dialog').removeClass('out').addClass('in'); 
    }
});

$confirm.dialog({

    buttons: {

        "ok": {
            text:'Ok',
            click: function() { closeDialog(this); }
        },

        "cancel": {
            text:'Cancel',
            click: function() { closeDialog(this); }
        }

    }).dialog('widget').appendTo('.dialogWrapper');

function closeDialog(element){
        $(element).removeClass('in').addClass('out');
        $(element).delay(500);
        $(element).dialog('close');
}

关于jquery - 在 jQuery UI 对话框的 beforeClose 上延迟关闭事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13541759/

相关文章:

JQuery UI 菜单 - 第一个 li 有额外的高度

html - 没有固定宽度的 Internet Explorer 7 可点击区域链接

ios - CSS 媒体查询无法正确识别 iphone 6

php - 当jquery-file-upload中的DB值 "position"等于 "id"时,如何插入数据

javascript - Jquery 错误陷阱逻辑

javascript - Backbone JS View 渲染不显示

jquery - Visual Studio 有类似 jquery-vsdoc.js 的 jquery-ui-vsdoc.js 吗?

JQuery UI 可排序 : restore position based on some condition

google-chrome - CSS3 颜色过渡在 Chrome 中不起作用

php - jQuery Tokeninput 如果不存在则添加