0

会发生什么:我在 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

4

1 回答 1

0

在向 JQuery 核心团队扔了一块骨头之后,我最终确定在 IE8 中使用调试器的时机只是……糟糕。

当调试器运行直到整个堆栈完成时,IE8 确实从未真正完成过 dom 操作任务。有点奇怪。这很尴尬,这是我们对 Internet Explorer 所期待的一切。

于 2013-04-16T18:04:14.373 回答