【发布时间】:2012-11-22 09:21:30
【问题描述】:
我有 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>
-亚历克斯
【问题讨论】:
-
如果你要替换一个div的内容,你能不能把自动完成代码放在文档根目录的函数中,然后在你的代码更新后重新实例化它的内容div?
标签: jquery jquery-autocomplete