使表格的标题列可左右拉伸jquery插件封装
插件名称命名为:jquery.tableresize.js,代码如下:
/* Writenbymlcactus,2014-11-24 这是我封装的一个jquery插件,能够使table的各列可以左右拉伸,从而使宽度变小或变大 用法: 单个table:$("#table_id").tableresize(); 页面所有table:$("table").tableresize(); */ (function($){ $.fn.tableresize=function(){ var_document=$("body"); $(this).each(function(){ if(!$.tableresize){ $.tableresize={}; } var_table=$(this); //设定ID varid=_table.attr("id")||"tableresize_"+(Math.random()*100000).toFixed(0).toString(); vartr=_table.find("tr").first(),ths=tr.children(),_firstth=ths.first(); //设定临时变量存放对象 varcobjs=$.tableresize[id]={}; cobjs._currentObj=null,cobjs._currentLeft=null; ths.mousemove(function(e){ var_this=$(this); varleft=_this.offset().left,top=_this.offset().top,width=_this.width(),height=_this.height(),right=left+width,bottom=top+height,clientX=e.clientX,clientY=e.clientY; varleftside=!_firstth.is(_this)&&Math.abs(left-clientX)<=5,rightside=Math.abs(right-clientX)<=5; if(cobjs._currentLeft||clientY>top&&clientY<bottom&&(leftside||rightside)){ _document.css("cursor","e-resize"); if(!cobjs._currentLeft){ if(leftside){ cobjs._currentObj=_this.prev(); } else{ cobjs._currentObj=_this; } } } else{ cobjs._currentObj=null; } }); ths.mouseout(function(e){ if(!cobjs._currentLeft){ cobjs._currentObj=null; _document.css("cursor","auto"); } }); _document.mousedown(function(e){ if(cobjs._currentObj){ cobjs._currentLeft=e.clientX; } else{ cobjs._currentLeft=null; } }); _document.mouseup(function(e){ if(cobjs._currentLeft){ cobjs._currentObj.width(cobjs._currentObj.width()+(e.clientX-cobjs._currentLeft)); } cobjs._currentObj=null; cobjs._currentLeft=null; _document.css("cursor","auto"); }); }); }; })(jQuery);
页面代码为:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <headrunat="server"> <title></title> <styletype="text/css"> td{text-align:center;} </style> <scripttype="text/javascript"src="script/jquery-1.10.2.js"></script> <scripttype="text/javascript"src="script/jquery.tableresize.js"></script> <scripttype="text/javascript"> $(document).ready(function(){ //使两张table同时支持左右拉伸 $("table").tableresize(); }); </script> </head> <body> 表格1<br/> <tablecellspacing="0"border="1"style="border-collapse:collapse;"rules="all"> <tbody><tr> <tdstyle="width:200px;">ID</td><tdstyle="width:200px;">名字</td><tdstyle="width:200px;">年纪</td><tdstyle="width:200px;">地址</td><tdstyle="width:200px;">电话</td> </tr><tr> <td>22</td><td>Name:44</td><td>Age:23</td><td>Address:47</td><td>Phone:15</td> </tr><tr> <td>28</td><td>Name:42</td><td>Age:68</td><td>Address:30</td><td>Phone:50</td> </tr><tr> <td>29</td><td>Name:63</td><td>Age:48</td><td>Address:90</td><td>Phone:76</td> </tr> </tbody> </table> <br/>表格2<br/> <tablecellspacing="0"border="1"style="border-collapse:collapse;"rules="all"> <tbody><tr> <tdstyle="width:200px;">ID</td><tdstyle="width:200px;">名字</td><tdstyle="width:200px;">年纪</td><tdstyle="width:200px;">地址</td><tdstyle="width:200px;">电话</td> </tr><tr> <td>22</td><td>Name:44</td><td>Age:23</td><td>Address:47</td><td>Phone:15</td> </tr><tr> <td>28</td><td>Name:42</td><td>Age:68</td><td>Address:30</td><td>Phone:50</td> </tr> </tbody></table> </body> </html>