jQuery自动完成不能处理动态加载的元素

我通过jQuery AJAX加载一个元素,其id为172 。 现在我想对此元素应用自动完成function。 但是,以下代码无效。

 $(document).ready(function(){ $( "#172" ).autocomplete({ minLength: 2, source: function(request, response) { var results = $.ui.autocomplete.filter(jsonCities, request.term); response(results.slice(0, 10)); }, focus: function( event, ui ) { $( "#172" ).val( ui.item.label ); return false; }, select: function( event, ui ) { $( "#172" ).val( ui.item.label ); $( "#172-id" ).val( ui.item.value ); return false; } }); }); 

我观察到这对任何动态加载的元素都不起作用。 我错过了什么? 这是正确的方式还是其他方式?

像这样的东西会起作用

 $.ajax({ url:"..." type:"...", success:function(){ //Add your #172 element and then use autocomplete on it $( "#172" ).autocomplete({}) } }); 

由于当您调用自动完成function时,您的元素不在DOM上,因此无法获得自动完成行为,请在Ajax调用中将元素添加到DOM后使用。