使表格的标题列可左右拉伸jquery插件封装

 更新时间:2014年11月24日 16:23:47   投稿:hebedich  
这篇文章主要介绍了使表格的标题列可左右拉伸jquery插件封装,需要的朋友可以参考下

插件名称命名为:jquery.tableresize.js,代码如下:

复制代码 代码如下:

/*
Writen by mlcactus, 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
            var id = _table.attr("id") || "tableresize_" + (Math.random() * 100000).toFixed(0).toString();
            var tr = _table.find("tr").first(), ths = tr.children(), _firstth = ths.first();
            //设定临时变量存放对象
            var cobjs = $.tableresize[id] = {};
            cobjs._currentObj = null, cobjs._currentLeft = null;
            ths.mousemove(function (e) {
                var _this = $(this);
                var left = _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;
                var leftside = !_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);  

页面代码为:

复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css" >
        td{ text-align:center;}
    </style>
    <script type="text/javascript" src="script/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="script/jquery.tableresize.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            //使两张table同时支持左右拉伸
            $("table").tableresize();
        });
    </script>
</head>
<body>
    表格1<br/>
    <table cellspacing="0" border="1" style="border-collapse:collapse;" rules="all">
        <tbody><tr>
            <td style="width:200px;">ID</td><td style="width:200px;">名字</td><td style="width:200px;">年纪</td><td style="width:200px;">地址</td><td style="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/>
    <table cellspacing="0" border="1" style="border-collapse:collapse;" rules="all">
        <tbody><tr>
            <td style="width:200px;">ID</td><td style="width:200px;">名字</td><td style="width:200px;">年纪</td><td style="width:200px;">地址</td><td style="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>

相关文章

  • 解决jQuery动态获取手机屏幕高和宽的问题

    解决jQuery动态获取手机屏幕高和宽的问题

    这篇文章主要介绍了如何解决jQuery动态获取手机屏幕高和宽的问题,需要的朋友可以参考下
    2014-05-05
  • jQuery 表格插件整理

    jQuery 表格插件整理

    本文搜集了大量 jQuery 表格插件,帮助 Web 设计者更好地驾御 HTML 表格,你可以对表格进行横向和竖向排序,设置固定表头,对表格进行搜索,对大表格进行分页,对表格进行滚动,拖放操作等等。这些插件很多都包含详细的教程。
    2010-04-04
  • Jquery操作cookie记住用户名

    Jquery操作cookie记住用户名

    jquery.cookie.js是一个基于jquery的插件,一个轻量级的cookie 插件,可以读取、写入、删除 cookie。接下来通过本文给大家介绍Jquery操作cookie记住用户名,需要的朋友参考下吧
    2016-03-03
  • jQuery 常用代码集锦(必看篇)

    jQuery 常用代码集锦(必看篇)

    下面小编就为大家带来一篇jQuery 常用代码集锦(必看篇)。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-05-05
  • JQuery AJAX操作代码

    JQuery AJAX操作代码

    jQuery底层AJAX实现,其返回其创建的XMLHttpRequest对象,大多数情况下无需直接操作该函数,除非需要操作不常用的选项,以获得更多的灵活性,这篇文章给大家介绍JQuery AJAX操作代码,感兴趣的朋友一起看看吧
    2022-12-12
  • 日常收藏的jquery技巧

    日常收藏的jquery技巧

    jQuery是继prototype 之后的又一个优秀的Javascript框架,本篇文章给大家分享收藏的jquery技巧,对jquery技巧相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • jquery分隔Url的param方法(推荐)

    jquery分隔Url的param方法(推荐)

    下面小编就为大家带来一篇jquery分隔Url的param方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • jQuery中[attribute^=value]选择器用法实例

    jQuery中[attribute^=value]选择器用法实例

    这篇文章主要介绍了jQuery中[attribute^=value]选择器用法,实例分析了[attribute^=value]选择器的功能、定义及匹配以某些值开始的元素的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • jQuery 页面载入进度条实现代码

    jQuery 页面载入进度条实现代码

    页面 Loading 条基本人人都会用。它的原理很简单:在页头放置一个文字或者图片的 loading 状态,然后页尾载入一段 JS 隐藏掉,即根据浏览器的载入顺序来实现的简易 Loading 状态条。
    2009-02-02
  • 七夕情人节丘比特射箭小游戏

    七夕情人节丘比特射箭小游戏

    本文给大家分享的是使用javascript实现的七夕情人节丘比特射箭小游戏的代码,并附上源码下载,谁说程序猿就不懂得浪漫呢,小伙伴们感觉拿去献宝吧(当然了,首先你得有女票才行^_^)
    2015-08-08

最新评论