我有以下正常工作的功能:
$(function() {
var availableTags = <? echo htmlspecialchars($jsEnc,ENT_NOQUOTES,'utf-8');?>;
$( "input.tags" ).autocomplete({
source: availableTags
});
});
在所有预先存在的情况下:<input class="tags"/>
该函数按其应有的方式执行(自动完成列表,即数据库转储)。
现在,这些输入实际上存在于 a<table>
中,其中的行可以动态添加或删除。
将单元格添加到表格时,我执行以下操作:
if(i== document.getElementById("soldTo").cellIndex){
element2.setAttribute('class','tags');
}
这基本上使输入(element2)能够成为jquery函数的目标(至少我是这么认为的)。
我假设 jquery 函数没有“意识到”这个新元素,必须以某种方式重新初始化才能看到新成员。
这是真的?这是在添加新元素时完成的吗?某种$(x).add(myBehavior)
?
编辑
我尝试了以下方法:
$("table.inventoryItems").bind("DOMSubtreeModified", function() {
alert('z');
$( "input.tags" ).autocomplete({
source: availableTags
});
});
并且警报也不会触发。
有什么可疑的地方吗?
谢谢
适当的解决方案外部链接