javascript - Jqueryui 对话框 ("close") 结束当前 javascript 线程

标签 javascript jquery html jquery-ui

您好,我在关闭 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/

相关文章:

javascript - 折叠行组 Shiny

jquery - 由于在类似画廊的灯箱上使用,避免在图像悬停时使用标题标签

javascript - ScrollMagic - 未捕获的 ReferenceError : ScrollScene is not defined

javascript - 数字 1-20 的数组

javascript - 在 URL 栏中按下 ENTER 时如何更正 Firefox 中的#anchor 滚动位置

javascript - 如何使用 jQuery 获取 url 中的值

jquery - 向 jQuery .validate 添加方法以检查 SummerNote 文本区域是否为空

javascript - 在javascript中比较两个数字的问题

php - 如何在 PHP 中从 MySql 读取波斯语字符串?

javascript 使用 for 循环打印嵌套对象?