0

全部,

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

下面是我用来设置超时的语法以及对话框 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>
4

1 回答 1

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");

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

于 2014-02-09T23:49:51.847 回答