Jquery 为什么不执行动态onChange函数?

Jquery 为什么不执行动态onChange函数?,jquery,html,dom-events,onchange,Jquery,Html,Dom Events,Onchange,我使用jQuery动态创建html元素,这是我以前没有做过的事情,但我有一个奇怪的bug。我正在创建一个输入元素,我想为它重新注册一个更改事件 var label_input = $("<input />", { type: 'text', change: function() { console.log("--"); } }); 当我在输入中键入一些内容,然后单击“退出”或按enter键时,它应该会将一些

我使用jQuery动态创建html元素,这是我以前没有做过的事情,但我有一个奇怪的bug。我正在创建一个输入元素,我想为它重新注册一个更改事件

var label_input = $("<input />", {
         type: 'text',
         change: function() {
           console.log("--");
         }
});
当我在输入中键入一些内容,然后单击“退出”或按enter键时,它应该会将一些内容打印到控制台。相反,如果我点击它,什么也不会发生,如果我点击enter,元素会自动移除。我为“change”和这两种情况下的“change”触发器设置了一个事件断点,但函数没有执行。当我点击enter时,我想它会将其注册为submit,因为输入是在表单中的,因为我收到了一条错误消息

明白了吗?404找不到

我还尝试在初始创建之外创建希望change调用的函数,并尝试了label_input.changetest_change

当上面的代码被隔离时,它似乎可以工作,尽管按enter键仍然会导致它自身被删除。但是在我的项目中,它有一个bug。此代码位于templates.js文件中,并在scripts.js中的Form_Data_Display函数中调用。为什么不执行on change函数


编辑我做了更多的探索,结果是$document.on'change',.+elem\u id,data\u update\u functions.set\u label;已工作,其中elem_id是表单中每个元素的标识符,data_update_functions.set_label是从外部传入的函数。但是问题仍然存在,为什么其他方法不起作用?

只有在输入字段失去焦点时才会触发更改事件,请尝试使用keyUp代替。不,keyUp对我不起作用,但我找到了其他方法。好的,你的解决方案是什么?
function meta_form_generator(elem_id, label, data_update_functions) {
  var form_container = $("<form />", { id: "metaForm", class: elem_id,role: 'form' });
    var label_group = $("<div />",{ class: 'form-group col-xs-6' });
      var label_label = $("<label />",{ text: 'element label:' });
      var label_input = $("<input />",{ 
        type: 'text', 
        class: elem_id + ' form-control',
        placeholder: label,
        change: function(){console.log("---");}
      });
    label_group.append(label_label);
    label_group.append(label_input);
  form_container.append(label_group);
  return form_container;
}