自动关闭JQuery UI对话框

时间:2013-10-31 12:48:12

标签: jquery-ui-dialog settimeout

所有

我正在尝试在我的JQuery UI对话框上设置超时但无法使其工作。我在setTimeout()上阅读了几篇SO帖子和文档,但显然我没有正确实现它。

下面是我用来设置超时的语法,以及HTML对话框。

由于

$.ajax({
        type: "POST",
        url: '/Dashboard/BackgroundCheck',
        data: queryStr,
        datatype: 'json',
        success: function (data) {
         if (data == true) {

            $("#dialog-message").attr('title', 'Success!');
            $(".js-dialog-content").html('Background Check status saved.');
            $("#dialog-message").fadeIn('slow');
            $("#dialog-message").dialog({
               modal: true,
               buttons: {
                 Ok: function () {
                 setTimeout(function() {
                   $(this).dialog("close");
                 },5000);
               }
             }
          });
        }
      }
    });

   }
});

对话框

 <div id="dialog-message" title="" style="display:none">
    <p>
      <span class="ui-icon ui-icon-circle-check" style="float: left; margin: 0 7px 50px 0;"></span>
      <span class="js-dialog-content"></span>
    </p>
  </div>

1 个答案:

答案 0 :(得分:2)

您应该定义对话框参数,您可以使用autoOpen或手动打开它。请注意这个样本:

$('#dialog-message').dialog({
                        autoOpen: false,
                        resizable: false,
                        show: 'fade',
                        hide: 'fade',
                        height: 240,
                        modal: true,
                        dialogClass: "alert",
                        close: function (event, ui) { /*do somthing you want*/ },                        
                        open: function (event, ui) { setTimeout(function () { $('#dialog-message').dialog("close"); }, 2000) }
                    }).dialog("open");

如您所见,我在函数中设置了与打开参数相关的超时。 祝你好运。