jquery 拖动表格 改变列宽

来源:互联网 发布:ubuntu 搜狗 乱码 编辑:程序博客网 时间:2024/05/16 05:40
/*  * DragTable Tool dragTable.js * Version 1.0.0 * Author 陈波 * @requires jQuery v1.3.2 or later * @example $('#id').dragTable({limitWidth:20}); * limitWidth:单元格最小宽度,不设置默认为1 * table父节点css样式不要设置'width'属性 */;(function($) {$.fn.dragTable = function(options){    var $this = $(this);$this.parent().css('width',null); $this.css({'width':null,'table-layout':'fixed'}); var currentTd=null;    var cookieKeyName = getFileName()+'-'+$this.attr('id');var limitWidth = options?options.limitWidth:1; var tdWidth = getCookie(cookieKeyName); var tdWidthArray = null; if(null!=tdWidth && undefined!=tdWidth){tdWidthArray = tdWidth.split(',');} $this.find('tr:first td').each(function(i){$(this).css({'cursor':'col-resize'}).attr('nowrap', true);$(this).css('width',null!=tdWidthArray?tdWidthArray[i]:$(this)[0].offsetWidth); }); $this.find('tr:first td').bind('mousedown',function(event, obj){obj=obj||this;event=event||window.event;currentTd=obj;obj.mouseDownX=event.clientX;obj.tdW=obj.offsetWidth;if(obj.setCapture){ obj.setCapture();}else if(window.captureEvents){  window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);   }        });$this.find('tr:first td').bind('mousemove',function(event){if(!currentTd) return ;var obj=currentTd;event=event||window.event;if(!obj.mouseDownX) return false;if(obj.parentNode.rowIndex==0) {var newWidth=obj.tdW*1+event.clientX*1-obj.mouseDownX;    if(newWidth>limitWidth) obj.style.width = newWidth;   else obj.style.width =limitWidth;}});$this.find('tr:first td').bind('mouseup',function(){var widthTdTemp = [];$this.find('tr:first td').each(function(){widthTdTemp.push($(this).css('width'));});addCookie(cookieKeyName, widthTdTemp, 360);if(!currentTd) return;if(currentTd.releaseCapture){   currentTd.releaseCapture();   }else if(window.captureEvents){            window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);                }            currentTd=null;});     // 获取cookiefunction getCookie(objName){    var arrStr = document.cookie.split("; ");    for(var i = 0;i < arrStr.length;i ++){     var temp = arrStr[i].split("=");     if(temp[0] == objName) return unescape(temp[1]);    }  }  // 添加cookiefunction addCookie(name,value,expires,path,domain){ var str=name+"="+escape(value); if(expires&&expires!=""){  var date=new Date();  date.setTime(date.getTime()+expires*24*3600*1000);//expires单位为天  str+=";expires="+date.toGMTString(); } if(path&&path!=""){  str+=";path="+path;//指定可访问cookie的目录 } if(domain&&domain!=""){  str+=";domain="+domain;//指定可访问cookie的域 } document.cookie=str;}// 获取引用该js文件的文件名function getFileName(){var arrUrl=window.location.href.split("/");return escape(arrUrl[arrUrl.length-1]);}}        })(jQuery); 

	
				
		
原创粉丝点击