Jquery:在加载DOM后添加到页面的输入元素上使用autocomplete()

我正在使用这个自动完成插件与Jquery一起工作: jQuery Autocomplete Mod

您可以通过简单添加$(“selector”)来使用它.autocomplete(url [,options]);

当页面加载时,有5个Input元素(id = channel后跟一个数字),这就是我使用此代码在每个输入上初始化自动完成插件的原因:

$(document).ready(function() { $('input[id^="channel"]').each(function(){ $(this).autocomplete( "autocomplete/autocomplete.php", { some options that don't matter now I guess } ); }); }); 

但是现在我还希望自动完成插件能够处理在加载页面后通过调用javascript函数(通过单击链接)添加的Input元素(相同的id语法)。

我现在有Jquery的live()函数,但我不知道如何在这里使用它。

我相信有一个很好的方法可以做到这一点,但我现在无法想到正确的方法。

提前致谢!

菲尔

因为自动完成会添加事件处理程序,所以没有任何好方法可以使它与动态添加的元素一起使用。 您必须修改插件,以便它可能(可选)知道动态应用处理程序。 这是相当多的工作。 一种更简单的方法是将处理程序抽象为一个函数,然后将其应用于原始元素和添加后的每个新元素,可能在回调中。

 $(document).ready(function() { var nextChannel = $('input[id^="channel"]').length + 1; function addAutocomplete( selector) { $(selector).each(function(){ $(this).autocomplete( "autocomplete/autocomplete.php", { some options that do not matter now I guess }); }); }); addAutocomplete('input[id^="channel"]'); $('.addSearch').click( function() { var input = $('') .appendTo('form'); addAutocomplete( input ); ++nextChannel; return false; }); });