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){ }

原文地址:https://www.cnblogs.com/kk-home/p/8930967.html

时间: 2024-11-12 08:22:59

JQuery插件的写法和规范的相关文章

闭包,jQuery插件的写法:图片预加载

最近做的一些网页,单个网页图片量都比较大,网络不好的情况下,特别卡,这个图片预加载的方法可以牺牲一些时间换来网页的浏览顺畅,还是值得的. //闭包的写法,它内部的变量都是局部的,不会和外部巳有的变量进行冲突 ( function (通过它来接收对象) { } )( 通过它来传递对象 ); //可以使用jQuery的$符号的闭包插件的写法: //写插件的常用方法 $.extentd() (function ($){ //构造函数 function PreLoad(imgs,options){ th

jquery插件的写法

一.JQuery的插件主要分为3种: 1.封装对象方法的插件. 如JQuery的parent()方法,appendTo()方法,addClass()方法等. 2.封装全局函数的插件. 如JQuery.ajax(),JQuery.trim()方法 3.选择器插件. 二.JQuery的插件机制: i.JQuery提供了两个用于扩展JQuery功能的方法,jQuery.fn.extend()方法和jQuery.extend()方法.前者用于扩展前面的提到的第一种插件,后者用于扩展后两种插件.这两个方法

jQuery插件通用写法

参考网址:http://www.cnblogs.com/wayou/p/jquery_plugin_tutorial.html 完整插件demo: /   ** * 表格隔行变字体颜色和背景颜色,鼠标移入移出变字体颜色 * * HTML页面调用方法: * $(function(){ *     $("table").ChangeWordColor({ *         oddWd:"blue" *     }).ChangeBgColor({ *        

jQuery插件的点点滴滴

说起jQuery插件,很多人的脑海种已经有了一定的雏形,仿佛感觉仅仅就是那样子,事实呢?当你看了Bootstrap.js,品读了slidesjs,观摩了jquery.cycle2.js,不禁发现,原来插件的世界千变万化,细微之处总是不容易让人发觉,世界那么大,那么我们就一起去看看它到底长什么样子? 工欲善其事必先利其器,如果你对于jQuery插件运用熟练的话,那么对已$.extend,你一定要去了解!,下面我们就先对$.extend来个剖析!先看看你对于$.extend的几种形式! 一.$.ex

写了一个简单的jquery插件(初恋啊)

用了好久的jquery了,却没有写过插件,今天研究了一个别人的插件和一些文章,总算搞清楚了jquery插件一些写法, 代码写了一个div当鼠标事件发生时的宽高变化情况,基础,代码基础,基础好了,才能研究深入的东西. 1 (function(jQuery){ 2 /* 3 * 插件应该返回一个JQuery对象,以便保证插件的可链式操作. 4 * JQuery插件的机制:jQuery提供了2个用于扩展jQuery功能的方法 5 * jQuery.fn.extend() 6 * jQuery.exte

编写自己的jquery插件之基础

1.编写jquery插件要遵循命名规范,通常情况下,jquery插件采用这种模式进行命名:jquery.pluginName.js,压缩版为:jquery.pluginName.min.js 2.编写jquery插件的方式有3种,第一种是通过jquery函数的原型属性来编写插件.第二种是采用jQuery.extend()方法.第三种是使用强大的jQuery UI Widget Factory编写插件.这里我选择用jQuery函数的原型属性来编写. 2.1    jQuery源码中有这样一句代码:

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

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

jquery插件写法

下面的文章是我复制粘贴的,是学习jquery插件写法时搜到的好的教程.谢谢这些人写的博客,为表示尊重,我将博客的地址也粘贴出来,希望可以帮到其他人. -----------------------------------------------------分割线--------------------------------------------------------------------------------------------------- JQuery插件写法的总结 最近Web

jquery 扩展和插件的写法

1.jquery扩展的方法常用的就是$.fn.xxx, 这个我理解的其实扩展jquery 实例中的属性或者方法 (function ($) { $.fn.alertSelf = function () { $(this).on('click',function () { alert( $(this).html() ); }) } })(jQuery); 这个扩展jquery实例中的方法,使用方法$("#idxx").alertSelef() 给某个节点添加了一个绑定弹出自身内容的方法