DIVがあり、その中にJQueryサンプルからコピーされたオートコンプリートウィジェットがあります:http://jqueryui.com/resources/demos/autocomplete/default.html
ボタンを押すと、DIVのコンテンツが新しいHTMLに置き換えられ、HEADERには動的に生成されたJavascriptが含まれ、オートコンプリートが初期化されます。
<head> ..
<script>
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Scala",
"Scheme"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
私の問題は次のとおりです。$(function())は、DIVのサブシーケンスのリロード時に評価されません==オートコンプリートは機能しません。
驚いたことに、DIVの「準備完了」イベントはありません
オートコンプリートコードを再初期化する方法を教えてください。
メインページにはPROJECTセレクターが含まれており、変更すると、オートコンプリートウィジェットを含む動的に生成された詳細がDIVに再ロードされます。
<html>
<head>
<script>
function refresh_div() {
..
document.getElementById(DYNA_DIV).innerHTML = self.xmlHttpReq.responseText;
}
</script>
</head>
<body>
<select id=PROJECT_ID onchange="refresh_div()" ..>
<div id="DYNA_DIV"> ..here is dynamically generated form with autocomplete widget containing items related to the PROJECT selected above</div>
</body>
</html>
DIVのHTMLは次のとおりです。提案されているように、HTML、HEAD、BODYを削除しました
最初にロードオートコンプリートが機能します。DIVの内容を更新すると、以下の初期化スクリプトが実行されません。
.. <input type="text" name="AUTOCOMP"> ..
<script>
$(function() {
var availableItems = [ <% dynamically enumerate items for PROECT_ID %> ];
$( "#AUTOCOMP" ).autocomplete({
source: availableItems
});
});
</script>
-alex