Jqueryui dialog(“close”) 结束当前的 JavaScript 线程
Jqueryui dialog("close") ends current javascript thread
嗨,我在关闭 jquery 对话框时遇到问题。我有一个彗星连接,可以向我的浏览器发送消息。我想做的是,当我收到一条消息,我想做一些事情时,关闭对话框,然后再做一些事情。不幸的是,当我执行时:$('#dialog').dialog("close");它结束了我当前的JavaScript代码。有没有办法避免这种情况?还是我需要确保使用变量在最后运行收盘价?
例如,在这里您可以看到我的文本在之后不会更改:http://jsfiddle.net/hKhMC/
这是一个简单的演示,我的实际代码之后会进行大量计算,所以我想知道是否有一种解决方案不涉及在关闭前移动文本。
您正在递归触发对话框关闭事件。 在 Chrome 中,您的 jsfiddle 示例会导致Uncaught RangeError: Maximum call stack size exceeded
。 这是因为 .dialog('close')
方法在关闭对话框后触发 dialogclose
事件。当有人单击对话框工具栏上的X
按钮或按 ESC
键时,也会触发此事件。
但是,在对话框初始化期间绑定此事件,然后调用可以再次触发它的相同方法。
所以我找到了解决问题的方法。
下面是用于创建 JQueryUI 对话框的代码。
$('#currentCallDialog').dialog({
autoOpen : false,
height : 350,
width : 550,
modal : true,
buttons : {
"Open" : function() {
//.. Do something
}
},
close : function() {
$(this).dialog("close");
}
});
问题出在我尝试调用对话框("关闭")的关闭按钮中;删除后,一切正常,请参阅下面的代码以获取工作示例:
$('#currentCallDialog').dialog({
autoOpen : false,
height : 350,
width : 550,
modal : true,
buttons : {
"Open" : function() {
//.. Do something
}
},
close : function() {
//.. Do something
}
});
相关文章:
- javascript中的多线程
- Javascript支持多线程吗
- 为什么Javascript SetTimeout()不是多线程的
- 从多线程C++插件回调NodeJS Javascript函数
- JavaScript的setInterval可以阻止线程执行吗?
- 是否可以在加载Disqus线程后使用javascript覆盖Disqus 2012中的css
- Jqueryui dialog(“close”) 结束当前的 JavaScript 线程
- firebug(1.10.1)建议javascript不局限于firefox(13.0)中的单个线程
- 如何使用并行/多线程Hamsters.js Javascript库编辑数组中的对象属性
- 如何在JavaScript中显示注释线程层次结构
- 是否可以使用多线程执行Javascript函数
- 独立线程上的Javascript回调函数
- 请参阅JavaScript正在创建的线程
- 浏览器会为iframe提供一个单独的JavaScript线程吗
- 在 Android 中使用多个 Web 视图来模拟 Javascript 线程
- 一个浏览器窗口中的所有选项卡共享一个JavaScript线程
- JQuery / JavaScript线程问题-模态对话框
- JavaScript:线程安全与异步事件回调?(我需要'挥发物'还是什么?)
- 窗口.打开新的JavaScript线程
- 暂停javascript线程一段特定的时间