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を実行すると、関数の最後までshowが実行されません。理論的には、実行されるはずですが、そうですか?

問題は、より大きく、より厄介な問題です。これを実現するためにonClick、bind、jquery、またはその他のメソッドを使用すると、常に解決され、関数スタックの最後に表示されます...そして私は開いたときに解決しようとしているかなり大きな関数スタックがありますが、UI-Dialog(最初は問題だと思っていました)の問題ではなく、ボックスを再表示する機能に問題があるようです。実行が終了しました。

つまり、概念的にはこれを行う別の方法があるかもしれませんが、何かをクリックします。IE8と9でjq-queueまたはコールバック、またはバインド、クリック、マウスダウンを使用するかどうかに関係なく、デバッガーがIEはChromeの場合と同じように機能します(これは完全に可能性がありますが、その情報は見つかりません)。唯一の可能性は、IEが関数スタックがクリアされるまでdom操作を保存し、その後それらを起動することです。

私の目標は:何かをクリックすることです。最初にボックスを開き、読み込みダイアログを表示します。ばかげた数の数をクランチします。ばかげた数のデータを挿入します。

必須のJSFiddle:http: //jsfiddle.net/5A4Nq/31/

JQDialogとOpenコールバックを使用した同じフィドル(http://jsfiddle.net/5A4Nq/36/

IE Developer Toolsが開いていることを確認し、スクリプトツールでデバッグを開始します。

バージョン:JQ-1.7.2

4

1 に答える 1

0

JQueryコアチームに骨を折った後、IE8でデバッガーを使用するタイミングがちょうど悪いと最終的に判断しました。

スタック全体が終了するまで、デバッガーが実行されたときに IE8 が実際に dom 操作タスクを完了することはありませんでした。それは奇妙だ。ぎこちないのですが、これが Internet Explorer に期待されるすべての機能です。

于 2013-04-16T18:04:14.373 に答える