jqueryui对话框(“关闭”)结束当前的javascript线程

use*_*177 1 html javascript jquery jquery-ui

嗨,我在关闭 jquery 对话框时遇到问题。我拥有的是一个彗星连接,可以向我的浏览器发送消息。我想做的是当我收到一条消息时,我想做一些事情,关闭对话框然后再做一些事情。不幸的是,当我执行: $('#dialog').dialog("close"); 它结束了我当前的 javascript 代码。有没有办法避免这种情况?或者我是否需要使用变量确保关闭在最后运行?

比如这里你可以看到我的文字在后面的时候不会改变:http : //jsfiddle.net/hKhMC/

这是一个简单的演示,我的实际代码之后做了很多计算,所以我想知道是否有一个解决方案不涉及在关闭之前移动文本。

Nal*_*Nal 5

您正在递归地触发对话框关闭事件。在 Chrome 中,您的 jsfiddle 示例会导致Uncaught RangeError: Maximum call stack size exceeded. 这是因为该 .dialog('close')方法dialogclose在关闭对话框后触发事件。当有人单击X对话框工具栏上的按钮或按下ESC键时,也会触发此事件。

但是,您在对话框初始化期间绑定此事件,然后调用可以再次触发它的相同方法。