平时总结
情况 : 页面上显示的表格是通过后端查询出来的,需要前端在第一列加索引,由于表格是后加载出来的,ready 或者load 只能加载第一页 的索引 翻页的时候 并没有加上
刚开始的想法 页面加载设置定时器 不停的去找 翻页的元素 ,在点的时候 又有一个定时器去监测 点的元素 由于数据返回慢 又找不到什么时候可以返回来
最后: jquery 绑定事件有一个方法 live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
这样 就少了一层定时任务 接下来 里面的定时器 去加索引 当应用这个current这个样式的元素 是当前点击的元素 关掉定时器
还有一个 方式正在加载的时候多次点击 造成 多个定时任务
方法:定义一个全局变量 设置0 点击变成1 关掉定时器在设为0 只有在0的时候才去走 这套东西 就可以保证 点别的 也不会走
function getIndex(){
if($('.HeaderForXtalbe').length>0){
$('.HeaderForXtalbe')[0].children[0].innerHTML='序号'
}
var len = $('#_xTable tr[style="vertical-align: middle;"]').length
if(len>0){
for(var i = 0;i<len;i++){
$('#_xTable tr[style="vertical-align: middle;"]:eq('+i+') td:first').text(i+1);
}
}
}
var tag = 0
$('.e8_numberspan').live('click',function(e){
if(tag==0){
tag=1;
var target = e.toElement;
var inner = setInterval(function() {
var source = $('.e8_pageinfo > .weaverTableCurrentPageBg')[0].innerText;
getIndex();
if(source == target.innerText){
clearInterval(inner);
tag=0;
}
},2000)
}
})