Javascript 在Ajax请求后重新调整Dom的斜体(.on input not working)

Javascript 在Ajax请求后重新调整Dom的斜体(.on input not working),javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我有一堆通过MySQL查询动态创建的文本输入 在我的页面底部,我有这个。。我不得不使用window.load而不是document.ready,因为后者不起作用 <script> $(window).load(function() { $('.<?php echo $sku; ?>').on('input', function() { $('.'+$(this).attr('class')).val($(this).val()); }); });

我有一堆通过MySQL查询动态创建的文本输入

在我的页面底部,我有这个。。我不得不使用window.load而不是document.ready,因为后者不起作用

<script>
    $(window).load(function() {
    $('.<?php echo $sku; ?>').on('input', function() {
    $('.'+$(this).attr('class')).val($(this).val());
});
});

$(窗口)。加载(函数(){
$('.')。在('input',function()上{
$('.+$(this.attr('class')).val($(this.val());
});
});
我的理解是,使用.on应该与过去和现在的dom对象都相关,但事实并非如此

我目前处理的(凌乱的)html是

<input type="text" class="mySKU18" id="inputsku" contenteditable="true" onkeydown="if (event.keyCode==13) saveToDatabase2(this,'itemnumber','mySKU18')" onClick="showEdit(this);"></input>

这是在页面加载时生成的,如果单击按钮,则使用ajax“重置”

我的问题是上面的脚本与上面的html有关。 这两种HTML在初始页面加载和ajax响应上是相同的

现在,我的解决方案是重新初始化ajax php脚本底部的脚本

/// my php
?>
<script>
    $('.<?php echo $sku; ?>').on('input', function() {
    $('.'+$(this).attr('class')).val($(this).val());
});
</script>
///my php
?>
$('.')。在('input',function()上{
$('.+$(this.attr('class')).val($(this.val());
});
这是可行的,不会提供任何控制台错误,但显然并不理想。
有人知道会出现什么问题以及如何解决吗?

像这样构建新的文本输入元素,它们将出现在DOM树中。如果需要在DOM树中引用所有新元素,可以用这种方式构建所有新元素,并使用appendChild将它们链接在一起

var text = document.createElement("input");
text.setAttribute('type', 'text')
text.setAttribute('id', 'yourID');
text.setAttribute('name', 'yourName');
text.setAttribute('class', 'yourClass');
text.setAttribute('style', 'yourStyle');
document.getElementById("yourParent").appendChild(text);

jQuery在运行时只知道页面中的元素,因此jQuery无法识别添加到DOM中的新元素。为了解决这个问题,我们使用了从新添加的项到DOM中某个点的冒泡事件,当jQuery在页面加载上运行时,这个点就在DOM中。许多人使用
document
作为捕获冒泡事件的地方,但并不需要一直向上遍历DOM树。理想的