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

时间:2014-03-10 14:57:46

标签: jquery

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

$(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;      
                }    
            });
});

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

1 个答案:

答案 0 :(得分:0)

这样的东西会起作用

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

});

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