バックグラウンド
動的コンテンツをロードするダイアログを作成するために JQuery UI プラグインを使用しています。
そこで、A、B、C、D、E の値を含むチェックボックスを含む一連の選択可能な項目を表示する html ドキュメントをロードします。
「A、C、E」にチェックを入れたとしましょう
サーバーへの AJAX 呼び出しを利用する送信ボタンを押します。サーバーは「A、C、E」というデータを取り込み、一連のクエリを実行して、データの内容を保持するデータと html を吐き出します。お気に入り:
<input id="radio1" name="selGroup" type="radio" value="1"><p class="test"> 1 </p>
<input id="radio3" name="selGroup" type="radio" value="3"><p class="test"> 3 </p>
<input id="radio5" name="selGroup" type="radio" value="5"><p class="test"> 5 </p>
<input id="enterBttn" type="button" value="Submit">
この html コンテンツはクライアントに返され、次の場所にダンプされます。
<div id="dialogCheck" title="Select one of these options"></div>
これは、jQuery を使用して行われます。
$("#dialogCheck").html(content);
テスト
そのため、すべてが機能しているかどうかを確認しましたが、機能しています。ラジオ ボタンと選択したい値を含むダイアログ ボックスが表示されます。しかし、今はインタラクティブ性を追加したいと思っています。
問題
サーバーから挿入された html でダイアログ ボックスを開くと、画面にコンテンツが表示されますが、元のソース コードで新しい html を表示したい場合。存在しません。次のように表示されます。
<div id="dialogCheck" title="Select one of these options"></div>
JQueryの「$("#dialogCheck").html(content);」を使ったところ 挿入します。ドキュメントを読んだところ、元のソース コードに html を追加しない方法が記載されていました。私の質問は、挿入した html の上に JQuery スクリプトを追加するにはどうすればよいですか?
ザ・ウィアード
次のようなものを渡すと:
$("#enterBttn").click(function(){
$( "#dialogCheck" ).dialog("destroy");
});
できます!私が作成した enterBttn は、ダイアログ ボックスを破棄します。ただし、ホバー機能を追加したい場合 (ダイアログ ボックスの上にテキストを強調表示したり、div のアウトラインを表示したい場合など) は、元のソース コードには存在しないため機能しません。
$(".test").hover(
function(){
$(this).append($("<span> ***</span>"));
},
function(){
$(this).find("span:last").remove();
});