Jquery ui对话框使用setTimeout自动关闭

时间:2013-10-27 10:38:03

标签: jquery jquery-ui

我想在3秒后自动关闭我的ui消息对话框。 我试过这种方式,但我不知道为什么它不起作用。 (对话不是自动关闭)

$("#success").dialog( "open" ).html( html_msg );
$("#success").on( "dialogclose", function( event, ui ) { window.location = url } )

按钮动作(效果很好)

$("#success").dialog({
  resizable: false,
  autoOpen: false,
  modal: true,
  dialogClass: 'success',
  buttons: {
    'Close': function() {
        $(this).dialog('close');
        }
     }
});

使用autoclose(不起作用)

$('#success').dialog({
  resizable: false,
  autoOpen: false,
  show: "blind",
  hide: "blind",
  modal: true,
  dialogClass: 'success',
  open: function(event, ui) {
     setTimeout(function(){
        $(this).dialog('close');                
         }, 3000);
    }

});
我错在哪里?这是正确的方法吗?感谢

1 个答案:

答案 0 :(得分:1)

正确的方法是使用 ID ,而不是使用this

open: function(event, ui) {
    setTimeout(function(){
        $('#success').dialog('close');                
    }, 3000);
}

演示:Fiddle