• JQuery插件的写法和规范


    首先,在具体说明编写插件之前,我们先假定一个使用场景:有一个HTML页面(或.aspx页面),页面上放置了一个5行3列的表格,即:<table></table>标记,具体代码如下:

    <tableid="newTable">
        <tr>
            <td>1</td><td>1</td><td>1</td>
        </tr>
        <tr>
            <td>1</td><td>1</td><td>1</td>
        </tr>
        <tr>
            <td>1</td><td>1</td><td>1</td>
        </tr>
        <tr>
            <td>1</td><td>1</td><td>1</td>
        </tr>
        <tr>
            <td>1</td><td>1</td><td>1</td>
        </tr>
    </table>

    我要实现的功能是:鼠标移到表格的某一行时,当前行高亮显示,其他行正常。

    OK,结合这个场景,我们进一步探讨如何利用JQuery插件实现上述功能。常用的JQuery插件有如下几种写法:

    1. 对JQuery自身的扩展插件
    顾名思义,这种插件是对JQuery自身的方法库进行扩展的。在使用的时候通过$.MethodName()的方式直接使用。
    插件代码示例:

    $.extend({
        handleTableUI: function(table){
            varthisTable = $("#" +table);
            
            $(thisTable).find("tr").bind("mouseover",function () {
                $(this).css({color: "#ff0011", background:"blue" });
            });
            $(thisTable).find("tr").bind("mouseout",function () {
                $(this).css({color: "#000000", background:"white" });
            });
        }
    });

    示例说明:当要对JQuery自身进行扩展的时候,需要采用$.extend();的形式进行开发,JQuery的extend()方法为我们提供了扩展JQuery自身的方式,在extend()方法中,我们采用{...}的形式编写具体的方法体。其中,最重要的是要定义我们自己的扩展方法,如示例中的handleTableUI。定义的方式是:方法名 :function(参数){ 方法体}。通过此种方式我们就可以定义JQuery自己的扩展方法,而且这个方法可以在web页面通过智能提示显示出来。页面中调用的代码如下:

    <scripttype="text/javascript">
        $(document).ready(function() {
            $.handleTableUI("newTable");
        });
    </script>
     
    2. 对HTML标记或页面元素进行扩展
    使用这种插件的扩展方式,在使用此插件时,需要首先引用经过JQuery包装的页面元素,如:$("#tableId").Method()。
    插件代码示例:
    (function ($) {
        $.fn.setTableUI= function(options){
            var defaults = {
                evenRowClass:"evenRow",
                oddRowClass:"oddRow",
                activeRowClass:"activeRow"
            }
            varoptions = $.extend(defaults, options);
            this.each(function(){
                varthisTable=$(this);
                $(thisTable).find("tr").bind("mouseover",function () {
                    $(this).css({color: "#ff0011", background:"blue" });
                });
                $(thisTable).find("tr").bind("mouseout",function () {
                    $(this).css({color: "#000000", background:"white" });
                });
            });
        };
    })(jQuery);

    示例说明:当要对页面元素进行JQuery扩展时,需要采用(function($){...})(JQuery);的方式进行开发。在“...”处,定义我们自己的方法,定义方式是:$.fn.自定义方法名=function(参数){...};的形式定义扩展方法的具体内容。在页面调用的时候不同于对JQuery自身的扩展。具体调用代码如下:

    <script type="text/javascript">
        $(document).ready(function() {
            $("#newTable").setTableUI();
        });
    </script>
     
    3.不要用在页面显式调用JQuery的方法,而是通过直接添加JQuery插件脚本引用,即可实现对该插件的调用。
    一般,如果需要用到一些全局的JQuery插件,即:插件的方法不需要显式调用,而是引用脚本即可;同时,这种插件一般对整个Web页面起到全局配置或设置的作用,如:对<body></body>内部的内容进行整体布局,此时可以采用脚本引用的方式实现。
    插件代码示例:
    (function ($) {
        $.tableUI= { set: function (){
            varthisTable = $("table");
            $(thisTable).find("tr").bind("mouseover",function () {
                $(this).css({color: "#ff0011", background:"blue" });
            });
            $(thisTable).find("tr").bind("mouseout",function () {
                $(this).css({color: "#000000", background:"white" });
            });
        }
        };
        //此处需要进行自调用
        $(function() {
            $.tableUI.set();
        });
    })(jQuery);
    示例说明:如果上面这段代码在my.plugin.js文件中,那么,我们只需要在页面上添加对此脚本文件的引用即可,引用方式为:<scriptsrc="Scripts/my.plugin.js"type="text/javascript"></script>,当然,在所有要用到JQuery的地方,需要首先添加对JQuery库脚本的引用。在引用型插件的代码中,最主要的就是在插件中要主动调用自己所写的插件方法,上面代码中有注释的地方。否则,我们写的插件代码将不会起作用。
     
     
    ##################################################################
     

    一、请给你的代码加上注释

    很多人都不喜欢加注释,嫌太麻烦了,这是个非常糟糕的习惯。世界不存在百分百的完美的jquery插件,注释不止是给别人看、更重要的是给自己看。应该把注释当做你代码的一部分,养成随手加注释的习惯,尤其是编写javascript的时候。
     
    1、在全部代码前加上文件说明注释
    例如:

    (function($){
       .......
    })(jQuery);
     
    2、函数务必加注释

    比如以下代码是其中的一个方法setContents:
    zmc.tips.prototype = {

    setContents : function(content){
       ...........
    }}
    3、参数务必加注释

    例如:
    //默认参数
    $.fn.tips.defaults = {

    applyTo : null,

    content : "",

    position : "topMiddle",

    offest : {"left":0,"top":0},
    /**提示框颜色*
    / color : "blue"
    }
     
     
    二、javascript变量规范

    在javascript中,没有真正意义的共有变量、私有变量、常量等概念,当javascript代码达到一定数量级时,过段时间回头看自己写的代码,会把自己也搞晕的。
    1、请在私有变量前加“_” 比如: var _pub = this.pub;
    2、常量请大写 比如: this.COLOR = "red";
    3、jquery对象变量前加“$” 比如: this.$Obj = $("#layout");
    4、object、array变量前加“o”、“a”很多人喜欢给数组变量加个”s”,这也是可以的,按个人习惯,如果你觉得有必要还可以给函数前加个“fn”。
     
    三、jquery插件开发的一些建议

    1、请多使用data()方法jquery中data()方法非常有用,尤其在jquery插件开发中,因为data()所创建的缓存,可以完整的保存各种数据类型的数据,这是其他缓存机制无法比拟的。
    2、请使用bind来绑定事件 很多朋友喜欢以下的代码:

    $(".yitip").click(function(){ ........ })

    但在jquery插件开发中更提倡使用bind:

    $(".yitip").bind('click',function(){ ......... })

    3、善用typeof typeof用于判断数据类型,这个方法在参数判断中非常有用处
    4、插件名加个独有前缀 jquery插件有太多太z了,插件撞车时很容易的事,比如搜索框插件:
    $.fn.tips = function(options){ } 

  • 相关阅读:
    springboot/springcloud 启动速度慢 卡死问题
    数据分析路线
    java杂
    贪吃蛇
    设计模式的七大原则
    Java--GUI编程(三)总结AWT/Swing
    时间复杂度
    Java--GUI编程(二)简易加法计算器
    Java--GUI编程(一)
    Java--this与super区别
  • 原文地址:https://www.cnblogs.com/kk-home/p/8930967.html
Copyright © 2020-2023  润新知