Javascript 如何在ajax成功函数中将表id绑定到DOM

Javascript 如何在ajax成功函数中将表id绑定到DOM,javascript,jquery,ajax,Javascript,Jquery,Ajax,在我的项目中,我想在单击复选框时执行一些操作 这是我的代码,可以正常工作: <script> window.onload=function() { var uTId = document.getElementById('uTId'); uTId.addEventListener("click", function(ev){ if(ev.target.getAttribute("type") == "checkbox"){ alert("xietes

在我的项目中,我想在单击复选框时执行一些操作

这是我的代码,可以正常工作:

<script>
window.onload=function() 
{
  var uTId = document.getElementById('uTId');       
  uTId.addEventListener("click", function(ev){
   if(ev.target.getAttribute("type") == "checkbox"){
   alert("xietest");
   }
 },false);
}
</script>

<div  class="easyui-panel" id="pp"  >
  <table class="uTb" id="uTId" cellspacing="0" style="100%" >
    <tr>
        <td ><input type="checkbox" id="Jack"/>Jack</td>
    </tr>
  </table>
</div>

window.onload=function()
{
var uTId=document.getElementById('uTId');
uTId.addEventListener(“点击”,函数(ev){
if(ev.target.getAttribute(“类型”)=“复选框”){
警报(“xietest”);
}
},假);
}
杰克
点击复选框,页面中可以成功出现“xietest”

但实际上pp easyui面板的内容来自ajax,如:

<script>
...
  $.ajax({
 .......
 success:function(data){
   var drfV='<table class="uTb" id="uTId" cellspacing="0" style="100%" >';
     drfV=drfV+'<tr><td ><input type="checkbox" value="'+data.name+'"/>'+data.name+'</td>';
     drfV=drfV+'</tr></table>';
     $('#pp').html("");
     $('#pp').append(drfV);
   }
  });
....
window.onload=function() 
{
  var uTId = document.getElementById('uTId');       
  uTId.addEventListener("click", function(ev){
   if(ev.target.getAttribute("type") == "checkbox"){
   alert("xietest");
   }
 },false);
}
</script>

<div  class="easyui-panel" id="pp"></div>

...
$.ajax({
.......
成功:功能(数据){
var-drfV='';
drfV=drfV+''+数据名+'';
drfV=drfV+“”;
$('#pp').html(“”);
$('#pp')。追加(drfV);
}
});
....
window.onload=function()
{
var uTId=document.getElementById('uTId');
uTId.addEventListener(“点击”,函数(ev){
if(ev.target.getAttribute(“类型”)=“复选框”){
警报(“xietest”);
}
},假);
}
现在它的工作失败了,“xietest”不能像以前那样表现出来

我知道不应该在DOM中找到表id uTId,因为它是在窗口onload之后加载的


但我不知道如何将表id uTId绑定到DOM,谁能帮助我呢?

正如您所说,您还不能为卸载的DOM元素声明事件。您应该处理所有成功事件,并在之后定义事件。因此,您可以使用
setInterval
来应用它

var ajax1Success = true;
var ajax2Success = true;
success: function(data) {
     var drfV = '<table class="uTb" id="uTId" cellspacing="0" style="100%" >';
     drfV = drfV + '<tr><td ><input type="checkbox" value="' + data.name + '"/>' + data.name + '</td>';
     drfV = drfV + '</tr></table>';
     $('#pp').html("");
     $('#pp').append(drfV);
     //Declare the event
     ajax1Success = true;
}
success: function(data) {
     var drfV = '<table class="uTb" id="uTId" cellspacing="0" style="100%" >';
     drfV = drfV + '<tr><td ><input type="checkbox" value="' + data.name + '"/>' + data.name + '</td>';
     drfV = drfV + '</tr></table>';
     $('#pp').html("");
     $('#pp').append(drfV);
     //Declare the event
     ajax2Success = true;
}
var t = window.setInterval(function () {
    var ajaxSuccess = ajax1Success || ajax2Success;
    if (ajaxSuccess == true) {
        clearInterval(t);//Clear the interval after at least one ajax call have been succeeded
        var uTId = document.getElementById('uTId');
        uTId.addEventListener("click", function (ev) {
            if (ev.target.getAttribute("type") == "checkbox") {
                alert("xietest");
            }
        });
    }

}, 1000);
var ajax1Success=true;
var ajax2Success=true;
成功:功能(数据){
var-drfV='';
drfV=drfV+“”+data.name+“”;
drfV=drfV+“”;
$('#pp').html(“”);
$('#pp')。追加(drfV);
//宣布事件
ajax1Success=true;
}
成功:功能(数据){
var-drfV='';
drfV=drfV+“”+data.name+“”;
drfV=drfV+“”;
$('#pp').html(“”);
$('#pp')。追加(drfV);
//宣布事件
ajax2Success=true;
}
var t=window.setInterval(函数(){
var ajaxSuccess=ajax1Success | | ajax2Success;
if(ajaxSuccess==true){
clearInterval(t);//在至少一个ajax调用成功后清除间隔
var uTId=document.getElementById('uTId');
uTId.addEventListener(“点击”,函数(ev){
if(ev.target.getAttribute(“类型”)=“复选框”){
警报(“xietest”);
}
});
}
}, 1000);

pp uTId表的td内容正在更改,这来自十个不同的ajax成功函数。我希望偶数代码是独立的,而不是每个函数都有它