会发生什么:我在 IE 中有一个 onclick 元素。比以前的编辑简单得多(稍微减少了一点)。
(css file)#dialog-modal{display:none;height:50px;width:50px;background-color:#000;}(/css)
<div id="dialog-modal" title="sample">xml data</div>
<button type="Button" onClick="makeBox();">Hello</button>
function makeBox(){
debugger;
$('#dialog-modal').show();
debugger;
console.log($('#dialog-modal').css('display'));
console.log('hasnt shown');
debugger;
console.log($('#dialog-modal').css('display'));
console.log('still hasnt shown');
debugger;
return false;
}
当您执行 MakeBox onClick 时,它直到函数的最后才会执行显示,理论上它应该在发生时执行,对吗?
问题是,更大,更烦人的问题是,当我使用 onClick、bind、jquery 或任何其他方法来完成此操作时,它总是在函数堆栈的最后解决并显示...有一个相当大的函数堆栈,它在打开时试图解决,但不是 UI-Dialog 的问题(我最初认为是问题),问题似乎更多在于取消隐藏框的能力,直到执行已完成。
我的意思是,也许在概念上还有另一种方法可以做到这一点,但我点击了一些东西,无论我是否使用 jq-queue 或回调,或者在 IE8 和 9(我假设为 7)中使用绑定、点击、鼠标按下,如果调试器在IE 的工作方式与它在 Chrome 中的工作方式相同(这可能完全有可能,但我找不到该信息),那么唯一的可能性是 IE 正在存储 dom 操作,直到函数堆栈清除,然后将它们射出。
我的目标是:点击某物。首先打开 Box,显示加载对话框。处理大量的数字。以愚蠢的数字插入数据。
强制性 JSFiddle:http: //jsfiddle.net/5A4Nq/31/
同样的小提琴,使用 JQDialog & Open 回调(http://jsfiddle.net/5A4Nq/36/)
确保您已打开 IE 开发人员工具并在脚本工具中开始调试。
版本:JQ-1.7.2