平时总结

情况 : 页面上显示的表格是通过后端查询出来的,需要前端在第一列加索引,由于表格是后加载出来的,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)
				}
			})



原文地址:https://www.cnblogs.com/ljh--/p/9882057.html