私はいくつかの HTML に対して Ajax GET を実行しており、次の方法で div を設定しています。
$(theDiv).html(theHtml)
この HTML には、次の方法で jQuery ダイアログを表示するボタン (「ボタン A」としましょう) が含まれています。
$(selector).dialog({modal:true});
「ボタンA」をクリックすると、毎回ダイアログが表示されます。ただし、ダイアログ内に [キャンセル] リンクを含めました。キャンセル リンクが起動します。
$(selector).dialog("close")
ほとんどの場合、うまく機能することに気付きました。ただし、Ajax GET が終了した直後に「ボタン A」をすばやくクリックすると、キャンセル リンクでダイアログが閉じません。ダイアログの右上にある「X」ボタンは常に機能しますが、私が苦労しているのはキャンセル ボタンです。
これを無駄に機能させるために、さまざまなことを試しました。これは、Firefox 3.5.9 と IE 7 で発生しています。Firebug を使用して.dialog('close');
ステートメントの後にブレークポイントを配置すると、画面の背景色が灰色から白に変わりますが、ダイアログは開いたままです。私は次のようにして問題を強制しようとさえしました:
$(selector).css("display", "none");
無駄に。
なんらかの理由で、Ajax GET が初めて起動したときに、この問題が発生することはありません...そのため、ページにアクセスして初めて GET を実行すると、毎回機能します。ただし、ページにとどまり、DOM がまだロードされている間に GET を起動し続けると、おそらく 50% の時間しか機能しません。
誰でも喜んで提供してくれるどんな助けにも感謝します!
ありがとう、
アンディ