DOM 挿入を使用して、いくつかのデータ入力ダイアログを生成しています。.html()
一部のブラウザー、特にモバイル ブラウザーや IE-Mac では、おそらく変更された DOM がまだ準備されていないため、呼び出し直後の操作が起動しないことがわかりました。例えば:
$.ajax({
type: "GET",
url: url,
dataType: 'html',
success: function (data, textStatus, jqXHR) {
$("#theDialog").html(data);
// hide address
$("#theDialog #BillingAddress").closest("li").hide();
...
これはほとんどの場合機能しますが、特定のブラウザでは、指定された を非表示にできないことがあります<li>
。また、コンソールに移動するとブラウザーが DOM の挿入を完了できるように見え、コードをステップ実行するときに.hide()
常に機能するため、デバッグが困難でした。
私が求めているのは、メソッド$("#theDialog").on("ready")
からのまたはコールバックのいずれかだと思います.html()
。しかし、それらは存在しないようです。
考えてみた
- に切り替えますが、最終的には JSONP に変換しますが、それをサポートしている
.load()
とは思いませんか?.load()
- およびその他のDOM
.hide()
操作を、返されたデータ内のスクリプト タグに配置します。
#2が推奨されるアプローチだと思いますが、最初にここでサニティチェックを行いたいと思いました. 誰もこれを経験しましたか?
どうもありがとう。