jQuery表格列宽可变,兼容firfox
本demo使用jQuery包,实现表格列宽可拖拽功能,并实现页面reset时的重新布局。使用jQuery,方便函数的调用,给要处理的表格添加id 后,直接调用$("#id").movedTh()即可方便实现,修改了firfox的兼容性。
代码如下:
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <mce:script type="text/javascript" src="jquery-1.3.2.min.js" mce_src="jquery-1.3.2.min.js"></mce:script>
- <mce:style><!--
- .resizeDivClass
- {
- position:absolute;
- background-color:gray;
- width:2px;
- height:15px;
- z-index:1px;
- display: block;
- cursor:e-resize
- }
- .td1 {
- font-size: 12px;
- white-space:nowrap;
- color:#0000ff;
- }
- --></mce:style><style mce_bogus="1">.resizeDivClass
- {
- position:absolute;
- background-color:gray;
- width:2px;
- height:15px;
- z-index:1px;
- display: block;
- cursor:e-resize
- }
- .td1 {
- font-size: 12px;
- white-space:nowrap;
- color:#0000ff;
- }</style>
- <mce:script language=javascript><!--
- /*
- 标题:扩拖拽列表格demo 1.2
- 设计:卢松强
- 博客:http://hi.csdn.net/andensy
- 日期:2010年4月26日
- 说明:修改了firfox兼容性问题,可以很好的兼容火狐浏览器
- */
- /*
- 依赖于jQuery
- */
- (function($){
- //用正则表达式判断jQuery的版本
- if (/1/.(0|1|2)/.(0|1|2|3|4|5)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
- alert('movedTh 需要 jQuery v1.2.6 以后版本支持! 你正使用的是 v' + $.fn.jquery);
- return;
- }
- me=null;
- var ps=3;
- $.fn.movedTh=function(){
- me=this;
- var target = null;
- var tempStr = "";
- var i=0;
- $(me).find("tr:first").find("th").each(function(){
- tempStr = '<div id="mydiv'+i+'"onmousedown="$().mousedone.movedown(event,this)" ></div>';
- var div={};
- $(this).html($(this).html()+tempStr);
- var offset = $(this).offset();
- var pos=offset.left +$(this).width()+ me.offset().left-ps;
- $("#mydiv"+i).addClass("resizeDivClass");
- $("#mydiv"+i).css("left",pos);
- $("#mydiv"+i).css("top",(offset.top+2));
- i++;
- }); //end each
- } //end moveTh
- $.fn.mousedone={
- movedown:function(e,obj){
- var d=document;
- var e = window.event||e ;
- var myX = e.clientX||e.pageX;
- obj.mouseDownX=myX ;
- obj.pareneTdW=$(obj).parent().width(); //obj.parentElement.offsetWidth;
- obj.pareneTableW=me.width();
- if(obj.setCapture){
- obj.setCapture();
- }else if(window.captureEvents){
- window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
- }
- d.onmousemove=function(e){
- var dragData=obj;
- var event = window.event||e ;
- if(!dragData.mouseDownX) return false;
- var newWidth=dragData.pareneTdW*1+(event.clientX||event.pageX)*1-dragData.mouseDownX;
- if(newWidth>0)
- {
- $(obj).parent().width(newWidth);
- me.width(dragData.pareneTableW*1+(event.clientX||event.pageX)*1-dragData.mouseDownX);
- var k=0;
- me.find("tr:first").find("th").each(function(){
- var offset = $(this).offset();
- var pos=offset.left*1+$(this).width()*1+me.offset().left*1-ps;
- $("#mydiv"+k).css("left",pos);
- k++;
- }) //end each
- }//end if
- };
- d.onmouseup=function(e){
- var dragData=obj;
- if(dragData.setCapture)
- {
- dragData.releaseCapture();
- }else if(window.captureEvents){
- window.releaseEvents(e.MOUSEMOVE|e.MOUSEUP);
- }
- dragData.mouseDownX=0;
- }
- }
- } //end mousedone
- $(window).resize(function(){
- setTimeout(function() {
- var target = null;
- var tempStr = "";
- var i=0;
- $(me).find("tr:first").find("th").each(function(){
- tempStr = '<div id="mydiv'+i+'"onmousedown="$().mousedone.movedown(event,this)" ></div>';
- var div={};
- $(this).html($(this).html()+tempStr);
- var offset = $(this).offset();
- var pos=offset.left +$(this).width()+ me.offset().left-ps;
- $("#mydiv"+i).addClass("resizeDivClass");
- $("#mydiv"+i).css("left",pos);
- i++;
- }); //end each
- }, 10);
- });
- })(jQuery)
- $().ready(function(){
- $("#tab").movedTh();
- })
- // --></mce:script>
- </head>
- <body onload="">
- <table cellpadding="3" id='' STYLE="table-layout:fixed;" mce_STYLE="table-layout:fixed;" >
- <tr bgcolor=cccccc >
- <th valign=top class="td1" ><nobr>改变table的列宽度改</nobr><span style="color:#069" mce_style="color:#069">|</span></th>
- <th valign=top class="td1" ><nobr>改变table的列宽度改</nobr><span style="color:#069" mce_style="color:#069">|</span></th>
- </tr></table>
- <br>
- <table cellpadding="3" id='tab' STYLE="table-layout:fixed;" mce_STYLE="table-layout:fixed;" >
- <tr bgcolor=cccccc >
- <th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
- <th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
- <th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
- <th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
- <th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
- <th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
- </tr>
- <tr>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- </tr>
- <tr>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- </tr>
- <tr>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- </tr>
- <tr>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- <td class="td1"><nobr>改变table的列宽度</nobr></td>
- </tr>
- </table>
- </body>
- </html>
jQuery表格列宽可变,兼容firfox的更多相关文章
- 使用jqueryUI实现自由调整表格列宽
今天项目中需要插入表格,用Excel表格调整列宽时,想怎么拖就怎么拖,于是乎就让插入的表格也这么让人舒服.网上查找许久,没找到好用的方案.最后发现jQuery UI中的resizable()方法可以实 ...
- 转!!Java JTable 根据表格内容 自动调整表格列宽
//根据表格内容 自动调整列宽http://blog.sina.com.cn/s/blog_5e54d6140100s1d3.html
- eas之添加表格列宽自动调整设置
设置表格整体宽度自动调整为所在panel的宽度 KDTable table=new KDTable(); table. setAutoResize (boolean); 注意:该功能在冻结功能启用后, ...
- java表格操作之设置表格列宽
设置所有列的宽度 /** * 设置所有列的列宽 * @param table * @param width */ public void setAllColumnWidth(JTable table, ...
- 原生js实现table表格列宽自由缩放
<!DOCTYPE html> <html> <head> <meta charset="gbk"> <title>ta ...
- 原生js实现 table表格列宽拖拽
查看效果 <!DOCTYPE html> <html> <head> <meta charset="gbk"> <title& ...
- JS实现表格列宽拖动
在数据表格中,有时候需要拖动表格宽度,查看完整的数据,是很常用的功能. 1 效果 可以用纯JS就可以实现,如下,是正常情况下的表格: 拖动表格标题中间线,拖动后效果如下: 查看DEMO 2 代码 HT ...
- JQuery 表格拖动调整列宽效果
类似于桌面程序中的表格拖动表头的效果,当鼠标停留在表头边框线上时,鼠标会变成表示左右拖动的形状,接着拖动鼠标,会在表格中出现一条随鼠标移动的竖线,最后放开鼠标,表格列宽会被调整.最近比较空闲,便自己动 ...
- QTableView表格视图的列宽设置
Qt中的表格控件可以通过从QTableView或QTableWidget派生子类实现.其中,QTableWidget只是对QTableView的一种简单封装.因为使用QTableView常常需要用户指 ...
随机推荐
- [BZOJ5427]最长上升子序列/[BZOJ4282]慎二的随机数列
[BZOJ5427]最长上升子序列/[BZOJ4282]慎二的随机数列 题目大意: 给你一个长度为\(n(n\le10^5)\)的整数序列,其中有一些数已经模糊不清了,现在请你任意确定这些整数的值,使 ...
- 并查集 (Union-Find Sets)及其应用
定义 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题.常常在使用中以森林来表示. 集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的 ...
- 喵哈哈村的魔法考试 Round #9 (Div.2) 题解
A题 喵哈哈村的数据筛选游戏 题解:这道题签到题,拿个数组记录一下这个数是否出现过即可. #include<bits/stdc++.h> using namespace std; cons ...
- python 安装pip setuptools
注意操作前提一定要使用管理员方式运行 python目录要完全允许控制 windows7 下 0.先安装python2.7.13 32位:https://www.python.org/ftp/pytho ...
- Linux下刷新DNS缓存(Ubuntu/CentOS)
现在很多Linux发行版都没有内置DNS本地缓存,Linux不像Windows那样可以使用ipconfig /flushdns来刷新,在Linux下无需刷新,因为本身没有缓存: 当然,如果非要缓存刷新 ...
- AngualrJS中每次$http请求时的一个遮罩层Directive
在AngualrJS中使用$http每次向远程API发送请求,等待响应,这中间有些许的等待过程.如何优雅地处理这个等待过程呢? 如果我们在等待过程中弹出一个遮罩层,会是一个比较优雅的做法. 这就涉及到 ...
- Oracle EBS 12.2.6 on VirtualBox
Back in May, Oracle announced the general availability of Oracle VM Virtual Appliance for E-Business ...
- Knockout.Js官网学习(options绑定)
前言 options绑定控制什么样的options在drop-down列表里(例如:<select>)或者 multi-select 列表里 (例如:<select size='6' ...
- Go语言之高级篇beego框架之controller调用model
一.controller调用model 开发规范,就该把对数据库的操作写在model文件夹中. 示例: views/main.go package main import ( _ "web/ ...
- 在 Visual Studio 2010 中配置SharpPcap
最近需要在C#下写一个抓取ARP包的程序,网上找来找去,在C#下只能用SharpPcap来做了.SharpPcap是作者把winPcap用C#重新封装而来的,详细信息见如下的链接. SharpPcap ...