jquery请求后台得到数据 生成一个表格
$("#tabor").append("<tr id= "+jsonarr[i].targetID+" align='center'>"
+"<td>"+jsonarr[i].vin+"</td>"
+"</tr>");
用$('#tabor').on('click','tr',function() {
var targetID = this.id; //targetid
alert(targetID);
这个绑定了一个事件,正常情况点击一下,是会弹出jsonarr[i].targetID。
但是 另外我还有一个timer1 = setInterval(function(){。。。})这个方法,用于循环的请求后台,得到数据之前会将之前的表格remove()删除掉,然后重新生成。问题就在这 在刷新的时候 点击表格 会弹出2次,甚至3次 jsonarr[i].targetID 这是为什么?
分不多了 抱歉。。
9 个解决方案
#1
楼主是刷新页面的时候吗?
#2
在刷新的时候 点击表格
只有在刷新的时候的时候出现这种问题吗?
最好在更新table的时候,禁用到tr的click事件,更新完毕后,再启用。可能会发生冲突。也是我的猜测。
只有在刷新的时候的时候出现这种问题吗?
最好在更新table的时候,禁用到tr的click事件,更新完毕后,再启用。可能会发生冲突。也是我的猜测。
#3
写的问题吧 我写过这样的功能 ,没出现你这种情况。 代码贴出来看看
#4
timer1 = setInterval(function(){。。
//生成表格代码
之后绑定事件,这样应该就好了
$('#tabor').on('click','tr',function() {
var targetID = this.id; //targetid
alert(targetID);
。})
//生成表格代码
之后绑定事件,这样应该就好了
$('#tabor').on('click','tr',function() {
var targetID = this.id; //targetid
alert(targetID);
。})
#5
检查下是不是每次重建表格的时候又重新绑定了一次事件.
还有在事件里调用event的stopPropagation和preventDefault方法再重新尝试一下.
还有在事件里调用event的stopPropagation和preventDefault方法再重新尝试一下.
#6
不仅仅是刷新过程中,就是结束刷新了,别的事件还会执行不止一次。
#7
不止 在结束刷新之后 点击表格 也会出现。
#8
我试试
#9
把整个表格都绑定事件了,点击表格当然是有id属性的每一行都会触发事件,所以会弹出多次,可以试下下面的代码:
<script>
$(function(){//页面加载完成执行此方法
setInterval(f1,5000);//设置定时器,每5s调用一次f1方法
});
function f1(){
$('#tabor').empty();//表格接收新数据前,先把表格的旧数据清空
(此处是生成新表格的代码);
$('#tabor').click(function(e){//整个表格绑定点击事件,并把产生的事件e作为参数
alert($(e.target).attr('id'));//获取事件源,并取得其id的属性值,然后输出
});
}
</script>
#1
楼主是刷新页面的时候吗?
#2
在刷新的时候 点击表格
只有在刷新的时候的时候出现这种问题吗?
最好在更新table的时候,禁用到tr的click事件,更新完毕后,再启用。可能会发生冲突。也是我的猜测。
只有在刷新的时候的时候出现这种问题吗?
最好在更新table的时候,禁用到tr的click事件,更新完毕后,再启用。可能会发生冲突。也是我的猜测。
#3
写的问题吧 我写过这样的功能 ,没出现你这种情况。 代码贴出来看看
#4
timer1 = setInterval(function(){。。
//生成表格代码
之后绑定事件,这样应该就好了
$('#tabor').on('click','tr',function() {
var targetID = this.id; //targetid
alert(targetID);
。})
//生成表格代码
之后绑定事件,这样应该就好了
$('#tabor').on('click','tr',function() {
var targetID = this.id; //targetid
alert(targetID);
。})
#5
检查下是不是每次重建表格的时候又重新绑定了一次事件.
还有在事件里调用event的stopPropagation和preventDefault方法再重新尝试一下.
还有在事件里调用event的stopPropagation和preventDefault方法再重新尝试一下.
#6
不仅仅是刷新过程中,就是结束刷新了,别的事件还会执行不止一次。
#7
不止 在结束刷新之后 点击表格 也会出现。
#8
我试试
#9
把整个表格都绑定事件了,点击表格当然是有id属性的每一行都会触发事件,所以会弹出多次,可以试下下面的代码:
<script>
$(function(){//页面加载完成执行此方法
setInterval(f1,5000);//设置定时器,每5s调用一次f1方法
});
function f1(){
$('#tabor').empty();//表格接收新数据前,先把表格的旧数据清空
(此处是生成新表格的代码);
$('#tabor').click(function(e){//整个表格绑定点击事件,并把产生的事件e作为参数
alert($(e.target).attr('id'));//获取事件源,并取得其id的属性值,然后输出
});
}
</script>