我似乎无法弄清楚这一点。我相信我将不得不使用.load()或.on(),但我无法弄清楚如何让它们中的任何一个工作。
所以我有一个有3行的表。当用户填写3行时,我想为他们提供更多。
一旦他们填写了最后一行,就会调用这个脚本。
function addNewRow(id)
{
var qty = $('#qty' + id).val();
if (qty > 0)
{
$('#quickaddtable').append('<?php echo createRow(($i+1)); ?>');
}
}
问题是我正在使用自动完成功能,而对于新创建的行,它无法正常工作。我知道我需要重新加载DOM,但我只是迷失在如何轻松做到这一点。
$(function(){
$(".id").autocomplete({
//My Code
});
});
我确信这是一个简单的答案,但几乎所有的例子都显示.on(“click”,...)
答案 0 :(得分:0)
Neal得到了它。我看错了。
我需要在自动完成时使用.on而不是addNewRow函数。
所以我改变了这个
$j(function(){
//attach autocomplete
$j(document).on("keyup.autocomplete", '.autocomplete', function(){
$j(this).autocomplete({
//My Code
});
});
})
感谢您的帮助。我花了好几个小时看着这个,并且在几分钟内,你们回答了再次感谢你们。既然尼尔没有发表答案,我有什么方法可以给他信任吗?
答案 1 :(得分:-1)
这里的问题是当使用$('.id')
选择器时,新行还不存在。添加更多行时,匹配“.id”的新元素不会绑定到之前调用的方法。
我可能只是在插入后重新绑定,而不是使用绑定到文档($(document).on('event')
)。所以它会是这样的:
$('#quickaddtable').append( ... );
$('.id').autocomplete("destroy");
$('.id').autocomplete({ ... });