É possível capturar keydown globalmente em entradas de texto adicionadas dinamicamente?

Estou usando o seguinte jQuery global para mostrar e ocultar um carregamentodiv para$.ajax chamadas:

$(document).ajaxStart(function(){
    $("#loading").show();
}
$(document).ajaxStop(function(){
    $("#loading").hide();
}

Isso funciona bem, mas eu não quero mostrar o carregamento de div para autocompletes, então eu adicionei isso:

$("input[type=text]").keydown(function(){
    if($(this).hasClass('ui-autocomplete-input')) {
        window.suppressGlobal = true;
    }
});

Então, para redefinirsuppressGlobal para "normal"$.ajax chama isso:

var origAjax = $.ajax;
$.ajax = function() {
    if (window.suppressGlobal) {
        arguments[0].global = false;
    }
    origAjax.apply(this, arguments);
    window.suppressGlobal = false;
};

Isso tudo funciona bem para entradas de texto que são construídas com o carregamento da página. No entanto, tenho várias situações em que as entradas de texto são inseridas dinamicamente no lado do cliente usando jQuery / Javascript, nesse casoakeydown evento não se limita à função global. Eu também tenteion:

$("input[type=text]").on('keydown', function(){
    if($(this).hasClass('ui-autocomplete-input')) {
        window.suppressGlobal = true;
    }
});

Mas isso não funciona também. Existe uma maneira que eu possa capturar globalmente okeydown evento, independentemente de quando a entrada de texto foi adicionada? Eu poderia de alguma forma capturar globalmente a adição de entradas de texto para o DOM e anexar o manipulador de eventos, então?

questionAnswers(1)

yourAnswerToTheQuestion