自己编写jQuery插件 之 表格样式(银光棒)

又来吐嘈了,实在是忍不住:换工作以来的第一次上班迟到。早上坐车,坐了4站路发现路线不对,问司机,司机说从今天起换路线了。尼玛,立马下车换乘。换了车,开了2站路,车子坏了,再次被迫下车。就近站牌等车,第一次车没靠站,直接走了,第二次很挤,没法还得上。终于到了公司楼下,fuck,电梯坏了,最终我迟到了......一个美好的早晨,我就这样被老天爷给轮了!

先上图:

上面这张图有3种状态,默认状态(灰白相间),鼠标悬浮状态(绿色),鼠标点击状态(黄色)。

Html代码如下:

<table>
        <thead>
            <tr>
                <td>编号</td>
                <td>姓名</td>
                <td>年龄</td>
                <td>操作</td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1111</td>
                <td>1111</td>
                <td>1111</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
            <tr>
                <td>2222</td>
                <td>2222</td>
                <td>2222</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
            <tr>
                <td>3333</td>
                <td>3333</td>
                <td>3333</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
            <tr>
                <td>4444</td>
                <td>4444</td>
                <td>4444</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
            <tr>
                <td>5555</td>
                <td>5555</td>
                <td>5555</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
        </tbody>
</table>

插件实现代码如下:

(function () {
            $.fn.TabStyle = function (options) {

                //默认参数设置
                var settings = {
                    evenClass: "tab_even",      //偶数行样式
                    oddClass: "tab_odd",        //奇数行样式
                    hoverClass: "tab_hover",    //鼠标悬浮样式
                    clickClass: "tab_click",    //鼠标点击样式
                    isClick: true               //是否开启鼠标点击样式
                };

                //合并参数
                $.extend(settings, options);

                return this.each(function () {
                    //为奇偶行分别添加样式
                    $(" > tbody > tr:even", this).addClass(settings.evenClass);
                    $(" > tbody > tr:odd", this).addClass(settings.oddClass);

                    $(" > tbody > tr", this).each(function (i) {
                        //鼠标悬浮样式
                        $(this).hover(function () {
                            $(this).addClass(settings.hoverClass);
                        }, function () {
                            $(this).removeClass(settings.hoverClass);
                        });
                        //鼠标点击样式
                        if (settings.isClick) {
                            $(this).bind("click", function () {
                                $(this).addClass(settings.clickClass).siblings("tr").removeClass(settings.clickClass);
                            });
                        }
                    });
                });
            }
})();

有些时候我们可能并不需要鼠标点击后的样式,因此设置了isClick这个作为控制开关。如果不想要点击样式,将其设置为false即可。

DEMO如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>表格样式(银光棒)</title>
    <style type="text/css">
        table{ width:700px; border:1px solid green;border-collapse:collapse;}
        table td{height:40px; text-align:center; width:25%;}

        .tab_even{ background-color: #DDD;}
        .tab_odd{ background-color: White;}
        .tab_hover{ background-color: Green;color:White;}
        .tab_click{ background-color: Orange;}
    </style>
</head>
<body>
    <table>
        <thead>
            <tr>
                <td>编号</td>
                <td>姓名</td>
                <td>年龄</td>
                <td>操作</td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1111</td>
                <td>1111</td>
                <td>1111</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
            <tr>
                <td>2222</td>
                <td>2222</td>
                <td>2222</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
            <tr>
                <td>3333</td>
                <td>3333</td>
                <td>3333</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
            <tr>
                <td>4444</td>
                <td>4444</td>
                <td>4444</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
            <tr>
                <td>5555</td>
                <td>5555</td>
                <td>5555</td>
                <td><input type="button" value="查看" /><input type="button" value="删除" /></td>
            </tr>
        </tbody>
    </table>
    <script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script src="../Scripts/jquery.similar.TabStyle.js" type="text/javascript"></script>
    <script type="text/javascript">
        $("table").TabStyle();
    </script>
</body>
</html>
时间: 2024-08-10 01:59:50

自己编写jQuery插件 之 表格样式(银光棒)的相关文章

第七章(插件的使用和写法)(7.6 编写 jQuery 插件)

7.6.1 插件的种类 编写插件的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护和提高开发效率. jQuery 的插件主要分为3种类型. 1 封装对象方法的插件 这种插件是将对象方法封装起来,用于对通过选择器获取的 jQuery 对象进行操作,是最常见的一种插件. 据不完全统计,95%以上的 jQuery 插件都是封装对象方法的插件,此类插件可以发挥出 jQuery 选择器的强大优势.有相当一部分的 jQuery 的方法,都是在 jQuery 脚本库内部通过这种

编写jQuery插件

编写jQuery插件 在园子里有很多关于jQuery插件的文章,尤其 以下2篇文章: 不定义JQuery插件,不要说会JQuery jQuery插件开发精品教程,让你的jQuery提升一个台阶 这2位大神基础讲的很清楚,在这里就不多说了,主要那个小需求来练练: 需求说明:一个标题插件,可以通过后端取数,自定义标题,自定义样式 讨论:插件通常不都是加载一下就不操作了,比如表格插件,加载数据,刷新等等. 今天练习的控件就简单给大家理理写控件的思路,(有问题,有意见大家指出.) ; (function

编写jQuery插件的方法

声明:详细内容请看<<锋利的jquery>>这本书 这里没对自定义选择器作介绍 因为我感觉jQuery已经为我们定义足够的选择器已经满足使用 <!DOCTYPE html> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>编写jquery插件<

自己编写jQuery插件 之 菜单折叠

菜单折叠这个功能很简单,很多人都有写过,只因它在项目中使用实在是太频繁了.代码就那么几行,没什么讲的,这里只是将其封装成插件而已. Html代码如下: <div class="box"> <p>菜单一</p> <ul> <li><a>1111</a></li> <li><a>1111</a></li> <li><a>11

自己编写jQuery插件 之 表单验证

吐个嘈先:最近状态不咋滴,真是什么都不想干,不想上班,做什么都没动力,觉得没意思.不想这样,不想这样,快让这种情绪消失吧,忽忽.... 表单验证在项目中用的还是比较多的,公司当前正在做的项目就要用到,故此写了此插件,先给大家看下在项目中应用的效果图吧: 直接上插件实现代码了,围绕代码进行讲解比较容易点: /* 描述:基于jquery的表单验证插件. 时间:2014-8-3 作者:similar([email protected]) */ (function ($) { $.fn.checkFor

编写jQuery插件(一)——插件约定及插件中的闭包

编写插件的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,提高开发效率和方便后期维护. 在编写jQuery插件的时候,我们一般会遵循一些约定: jQuery插件推荐命名为:jquery.插件名.js. 所有对象方法都应当附加到jQuery.fn对象上,而所有的全局函数都应当附加到jQuery对象本身上. 在插件内部,this指向的是当前通过选择器获取的jQuery对象:而一般的方法如click()方法,内部的this指向的是DOM元素. 所有的方法或函数插件,都应当以分号结尾

手动编写JQUERY插件

就拿一个简单的示例来说,鼠标点击输入框,提示文字消息,鼠标移开,再显示提示文字. <script type="text/javascript"> //编写插件 (function ($) { $.fn.placeholder = function (option) { var input = this; input.focus(function () { if (input.val() == "" || input.val() == option.Def

如何编写JQuery 插件详解

转载自:http://blog.sina.com.cn/s/blog_6154bf970101jam7.html 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论下jquery的插件机制,jquery有着成千上万的第 三方插件,有时我们写好了一个独立的功能,也想将其与jquery结合起来,可以用jquery链式调用,这就要扩展jquery,写成插件形式

如何编写jQuery插件

要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈. 学会使用jQuery并不难,因为它简单易学,并且相信你接触jQuery后肯定也使用或熟悉了不少其插件.如果要将能力上升一个台阶,编写一个属于自己的插件是个不错的选择. 本教程可能不是最精品的,但一定是最细致的. jQuery插件开发模式 软件开发过程中是需要一定的设计模式来指导开发的,有了模式,