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成功函数。我希望偶数代码是独立的,而不是每个函数都有它