jQuery UI模式对话框在关闭之前挂起

时间:2015-01-17 00:39:20

标签: javascript jquery jquery-ui jquery-ui-dialog

当我单击对话框上的“是”按钮时,它将在屏幕上停留5-10秒,直到startProcess()函数完成。在startProcess()开始之前,对话框不应该关闭吗?我希望对话框能够通过关闭而不是等待startProcess()完成来立即响应。

	  $("#dialog-confirm").dialog({
	  dialogClass: 'no-close', 
	  resizable: false,
	  autoOpen: false,
	  maxWidth: 600,
	  width: 400,
	  fluid: true,
	  height: 'auto',
	  modal: true,
	  buttons: {
	    "Yes": function() {
	      $(this).dialog("close"); 
	      startProcess();        
	      return true;
	    },
	    No: function() {
	      $(this).dialog("close");
	      return false;
	    }
	  }
	}).css("font-size", "14px"); 

1 个答案:

答案 0 :(得分:0)

您需要异步运行startProcess()。你可以这样做:

"Yes": function() {
    $(this).dialog("close");
    setInterval(startProcess, 1);
    return true;
},

.dialog("close")只是隐藏了DOM中的对话框。但是在函数返回之前,浏览器不会基于DOM更新显示。