您好,我在关闭 jquery 对话框时遇到问题。 我有一个 cometd 连接,可以将消息发送到我的浏览器。我想做的是当我收到一条我想做一些事情的消息时,关闭对话框然后再做一些事情。不幸的是,当我执行时: $('#dialog').dialog("close");它结束了我当前的 javascript 代码。有没有办法避免这种情况?或者我是否需要使用变量确保关闭在最后运行?
比如这里可以看到我的文字在后面的时候是不会变的: http://jsfiddle.net/hKhMC/
这是一个简单的演示,我的实际代码之后做了很多计算,所以我想知道是否有一个解决方案不涉及在结束前移动文本。
最佳答案
您正在递归地触发对话框关闭事件。在 Chrome 中,您的 jsfiddle 示例导致 Uncaught RangeError: Maximum call stack size exceeded
。这是因为 .dialog('close')
方法在关闭对话框后触发了 dialogclose
事件。当有人单击对话框工具栏上的 X
按钮或按下 ESC
键时,也会触发此事件。
然而,您在对话框初始化期间绑定(bind)此事件,然后调用可以再次触发它的相同方法。
关于javascript - Jqueryui 对话框 ("close") 结束当前 javascript 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11875816/