首页 > 其他分享 >跟我一起学写jQuery插件开发方法(附完整实例及下载)

跟我一起学写jQuery插件开发方法(附完整实例及下载)

时间:2023-08-11 09:56:38浏览次数:37  
标签:jQuery function 插件 tr 开发方法 var options

跟我一起学写jQuery插件开发方法(附完整实例及下载)

 更新时间:2010年04月01日 23:37:51   作者:     jQuery如此流行,各式各样的jQuery插件也是满天飞。你有没有想过把自己的一些常用的JS功能也写成jQuery插件呢?如果你的答案是肯定的,那么来吧!和我一起学写jQuery插件吧!   很多公司的前端设计开发人员都是女孩子,而这些女孩子很多JavaScript技能都不是很好。而前端开发过程中,JavaScript技能又是必不可少的。所以,如果前端小MM正在为某个JavaScript效果发愁的时候,你潇洒的过去,然后对她说:“嗨,美女,用这个吧。这是我写的一个jQuery插件。”我想基本上你的人生大事就能很快解决。
先想好做个什么功能
这是第一步,也是很重要的一步,鉴于咱们都是刚学习写jQuery插件,所以,这个功能一定要简单一些。不要想一口就吃个胖子,咱也吃不了。咱还是捡个瘦的下手吧。但是,这个功能也不能太无聊,如果无聊到几乎没用处,就算做好了也是扔到马桶里,不会持续更新,也便不会持续进步了。
我最终选择的是:美化表格,让表格的奇偶行颜色不同,然后鼠标移到某行上,某行可以高亮显示。功能简单又实用,不错,不错。呵呵~~
不急着写,先想想实现原理
还不急,先想想实现原理。必要的时候,先写出简单的实现的原型。
我的这个美化表格的例子,实现原理倒是简单,无非就是找到表格的奇偶行,然后添加不同的class,活动行高亮显示也很简单,只要判断mouseover事件,然后添加一个class,mouseout的时候,再去掉这个class即可。
一个通用的框架
在动手写自己的jQuery插件之前,自然是先研究一下别人写的插件了。其实写jQuery也基本有一个通用的框架。行,那咱也把这框架照搬过来吧。
复制代码代码如下:
(function($){
$.fn.yourName = function(options){
//各种属性、参数
}
var options = $.extend(defaults, options);
this.each(function(){
//插件实现代码
});
};
})(jQuery);
有了这个,咱就可以往里面套东西了。
名号、参数和属性
好不容易开始闯荡江湖了,一定要有一个响亮的名号才行,这样走在江湖上,才能够屌,够威风。不信,你听听人家“中国牙防组”!所以,咱这里一定要起个响亮的名号,一定要简单、明了、够权威。所以,决定了,就叫做“tableUI”了!
参数和属性也很简单,无非就是三个class的名称。就叫做:evenRowClass、oddRowClass和activeRowClass吧。
所以,上面的框架,咱就把上半身给填上了。
复制代码代码如下:
(function($){
$.fn.tableUI = function(options){
var defaults = {
evenRowClass:"evenRow",
oddRowClass:"oddRow",
activeRowClass:"activeRow"
}
var options = $.extend(defaults, options);
this.each(function(){
//实现代码
});
};
})(jQuery);
这里重点说一下这一句:
复制代码代码如下:
var options = $.extend(defaults, options);
看上去很屌的一句,其实就是合并多个对象为一个。这里就是,如果你在调用的时候写了新的参数,就用你新的参数,如果没有写,就用默认的参数。想进一步了解的朋友,可以参考jquery的官方文档: http://api.jquery.com/jQuery.extend/

开始下半身吧
ok,上半身填补完了,咱就可以填补下半身吧。无非就是找到基数行和偶数行(感谢jQuery提供了类似tr:even这种写法,使其及其简单),然后添加上相应的class。然后再给所有的tr,绑定mouseover和mouseout事件即可。下半身代码如下:
复制代码代码如下:
(function($){
$.fn.tableUI = function(options){
var defaults = {
evenRowClass:"evenRow",
oddRowClass:"oddRow",
activeRowClass:"activeRow"
}
var options = $.extend(defaults, options);
this.each(function(){
var thisTable=$(this);
//添加奇偶行颜色
$(thisTable).find("tr:even").addClass(options.evenRowClass);
$(thisTable).find("tr:odd").addClass(options.oddRowClass);
//添加活动行颜色
$(thisTable).find("tr").bind("mouseover",function(){
$(this).addClass(options.activeRowClass);
});
$(thisTable).find("tr").bind("mouseout",function(){
$(this).removeClass(options.activeRowClass);
});
});
};
})(jQuery);
最重要的一步!
也许有些朋友觉得这样就算是完成了。但是切切相反,我们还有最重要的一步没有完成,那就是一定要在插件上方,写上插件的名称、版本号、完成日期、作者,作者的联系方式、出生日期、三围……等等。因为只有这样才能显的这个插件够专业。
复制代码代码如下:
/*
* tableUI 0.1
* Copyright (c) 2009 JustinYoung http://justinyoung.cnblogs.com/
* Date: 2010-03-30
* 使用tableUI可以方便地将表格提示使用体验。先提供的功能有奇偶行颜色交替,鼠标移上高亮显示
*/
(function($){
$.fn.tableUI = function(options){
var defaults = {
evenRowClass:"evenRow",
oddRowClass:"oddRow",
activeRowClass:"activeRow"
}
var options = $.extend(defaults, options);
this.each(function(){
var thisTable=$(this);
//添加奇偶行颜色
$(thisTable).find("tr:even").addClass(options.evenRowClass);
$(thisTable).find("tr:odd").addClass(options.oddRowClass);
//添加活动行颜色
$(thisTable).find("tr").bind("mouseover",function(){
$(this).addClass(options.activeRowClass);
});
$(thisTable).find("tr").bind("mouseout",function(){
$(this).removeClass(options.activeRowClass);
});
});
};
})(jQuery);
演示地址

实例下载地址

标签:jQuery,function,插件,tr,开发方法,var,options
From: https://www.cnblogs.com/tomcat2022/p/17622262.html

相关文章

  • 教你开发jQuery插件(转)
    教你开发jQuery插件(转)  阅读目录基本方法支持链式调用让插件接收参数面向对象的插件开发关于命名空间关于变量定义及命名压缩的好处工具GitHubServiceHook原文:http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html要说jQuery最成功的地方,我认为是......
  • Leafer 插件开发教程
    前言Leafer是新开源的一个2D图形绘制库,目前已经有了1.1k的Star数,成长趋势非常不错,本篇不对Leafer过多介绍,不了解的同学可以直接阅读官网介绍,或者阅读我在之前写的LeaferJS尝鲜及应用数学文章中也做了简单的介绍由于目前Leafer尚在成长期,现在仍然还只是一个单纯......
  • Arctime字幕插件——影视剧字幕神器
    到官网上面去下载这个软件把素材导入进来打开文本,把文本导入到ArctimePro里面选中这个然后就可以在上面拖拽了可以改变样式导出就好了......
  • SOLIDWORKS自动标注插件
    在设计工作中,三维模型设计好之后,还要创建二维工程图,用来指导加工生产。二维图出图的过程是一个非常枯燥的过程,而且还需要根据公司规范来进行尺寸标注、公差标注等,所以有时候,可能建模只用了几分钟,出工程图却用了半小时。那有没有能够帮助我们提升效率的SOLIDWORKS自动标注插件呢,目......
  • 4.Elasticsearch插件Head和Serebro实现Elasticsearch的图形化管理
    Elasticsearch访问Elasticsearch支持各种语言使用RESTfulAPI通过端口9200与之进行通信,可以用你习惯的web客户端访问Elasticsearch可以用三种方式和Elasticsearch进行交互curl命令和其它浏览器:基于命令行,操作不方便插件:在node节点上安装head,Cerebro等插件,实现图形操......
  • 跟我一步一步开发自己的Openfire插件
    这篇是简单插件开发,下篇聊天记录插件。开发环境:System:WindowsWebBrowser:IE6+、Firefox3+JavaEEServer:tomcat5.0.2.8、tomcat6IDE:eclipse、MyEclipse8开发依赖库:Jdk1.6、jasper-compiler.jar、jasper-runtime.jar、openfire.jar、servlet.jar在开始之前,如果你不知道怎么使用open......
  • JQuery概述
      ......
  • 【IntelliJ IDEA插件】值得推荐的Idea几十大优秀插件、神级超级牛逼插件推荐(自用,真的
    本文目录一、提高效率级插件1、Lombok--简化Java代码开发2、FreeMybatisplugin--mybatisxml和对应的mapper之间来回切换3、GrepConsole--控制台日志高亮4、MybatisLogPlugin--显示完整sql5、CodeGlance--缩略图6、.ignore--提交代码时自动忽略不需要提交的文件......
  • jQuery学习之:jqGrid表格插件——从Struts2获得数据
    jQuery学习之:jqGrid表格插件——从Struts2获得数据 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://polaris.blog.51cto.com/1146394/264465之前谈到了jqGrid与Serlvet/JSP集......
  • 读取sqlite库的wkt类型数据(unbantu中安装spatialite插件)
    一,问题:现在要从sqlite读取wkt类型的数据,写入postgis库中wkt在sqlite中的格式为:  python直接读取的格式是:b'\x00\x01\xef\x7f\x00\x00\xf9\xff\xff\xf3\xc8\xfe*\x' pg库可以直接存的类型是wkt格式: LINESTRINGZ(40.612829447.729325-1.566514,43.813899......