Autocompletar en jQuery con elementos agregados dinámicamente

Mi requisito es mostrar algunas opciones cuando el usuario ingresa algunos caracteres (mínimo 3) en uno de los campos de entrada que también pueden agregarse dinámicamente.

No puedo cargar datos al cargar la página al principio porque los datos son enormes. Hay una llamada ajax para obtener esos datos filtrados.

El problema que estoy obteniendo esExpected identifier error al cargar la página en la línea # 2. Entonces, ¿podría decir qué está mal con el código a continuación?

$(document).on('keydown.autocomplete', 'input.searchInput', function() {                
            source: function (request, response) { // Line # 2
            var id = this.element[0].id;

            var val = $("#"+id).val();             
            $.ajax({                     
                    type : 'Get',
                    url: 'getNames.html?name=' + val,
                    success: function(data) {
                        var id = $(this).attr('id');
                        $(this).removeClass('ui-autocomplete-loading'); 
                        response(data);
                    },error: function(data) {
                          $('#'+id).removeClass('ui-autocomplete-loading');  
                    }
                  });
              },
                minLength: 3
            });

Respuestas a la pregunta(3)

Su respuesta a la pregunta