`

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

 
阅读更多

今天抽时间学习了一下jQuery插件开发,由于这篇文章讲的还通俗易懂的,感觉还不是很难,故分享给大家作为jQuery插件入门的文章

jQuery如此流行,各式各样的jQuery插件也是满天飞。你有没有想过把自己的一些常用的JS功能也写成jQuery插件呢?如果你的答案是肯定的,那么来吧!和我一起学写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);

ok!来看看一个完整的实例吧!

没图没真相,没代码没真相。所以贴图和完整实例是必须的。

jquery插件
学写jQuery插件实例
分享到:
评论

相关推荐

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

    这是我写的一个jQuery插件。”我想基本上你的人生大事就能很快解决。 先想好做个什么功能 这是第一步,也是很重要的一步,鉴于咱们都是刚学习写jQuery插件,所以,这个功能一定要简单一些。不要想一口就吃个胖子,咱...

    jquery插件之flexigrid学习实例

    在这个"jquery插件之flexigrid学习实例"中,我们将深入探讨如何在Struts2框架下结合JSON进行数据交互,以实现一个完整的应用。 首先,我们需要了解Flexigrid的基本使用方法。在HTML页面中,我们需要引入jQuery库和...

    jQueryUI官方实例集

    **jQueryUI官方实例集** jQueryUI是一个基于JavaScript库jQuery的扩展,它提供了...同时,实例集还涵盖了如何与其他jQuery插件和库(如Bootstrap)兼容,以及如何进行自定义主题设计,确保与网站的整体风格保持一致。

    JQuery&CSS;&CSS;+DIV实例大全.rar

    一款jQuery插件slide幻灯片切换图片宽高自适应 74.一款jQuery漂亮淡出淡入焦点大图切换源码 75.一款jquery缩略图商品切换放大展示功能插件 76.一款使用jQuery左右控制横向图片滚动的代码 77.一款基于jquery...

    jQuery 源码+实例+注释

    **jQuery 源码分析与实例详解** jQuery 是一个广泛使用的 JavaScript 库,它极大地简化了 JavaScript 的 DOM 操作、事件处理、动画制作以及 AJAX 交互。本教程旨在通过源码解析、实例演示和详细注释,帮助新手快速...

    分享仿淘宝天猫商品分类导航Jquery插件

    首先,"分享仿淘宝天猫商品分类导航Jquery插件"是指利用jQuery技术和前端开发技巧,创建一个与淘宝天猫商品分类导航相似的用户界面和交互效果。这种插件通常包括层次结构的展示、鼠标悬停展开/收起分类、动态加载更...

    JQuery实例源代码

    这个压缩包中的"JQuery实例"包含了各种实际应用中的jQuery代码示例,让我们一起深入探讨这些实例背后的原理和技巧。 1. **DOM操作** - jQuery提供了简洁的API来选择、操作和遍历DOM元素。例如,`$("#id")`用于选取...

    JQuery实例下载

    **jQuery 实例下载详解** jQuery 是一款非常流行的 JavaScript 库,它极大地简化了 JavaScript 的DOM操作、事件处理、动画设计和Ajax交互。本资源提供了一系列的jQuery学习实例,旨在帮助初学者快速掌握jQuery的...

    jQueryUI实例程序

    **jQueryUI实例程序** jQueryUI 是一个基于 jQuery JavaScript 库的用户界面插件集合,它提供了丰富的交互式组件和设计模式,使得开发者可以轻松创建出美观、易用的Web应用程序界面。这个压缩包包含了多种jQueryUI...

    很详细的jquery学习资料,有很多例子哦

    这部分将介绍如何选择和使用这些插件,以及如何开发自己的jQuery插件。例如,jQuery UI提供了一系列预封装的交互组件,如日期选择器、对话框等。而像jQuery Validation Plugin这样的工具则可以帮助我们轻松实现表单...

    jquery ui1.8.16+jquery-easyui-1.2.2+asp.net+ztree实例

    jQuery UI 是一个基于 jQuery JavaScript 库的用户界面插件集合,它提供了一套完整的组件,包括对话框、拖放、日期选择器、可排序列表等,用于创建富有交互性和吸引力的网页应用。在1.8.16这个版本中,它包含了当时...

    jQuery图片动画特效实例

    本实例重点探讨的是如何利用jQuery实现丰富的图片动画特效,以提升网站的视觉吸引力和用户体验。 首先,jQuery的动画功能是通过其内置的`.animate()`方法实现的。这个方法允许开发者指定CSS属性的变化,并在指定的...

    jQuery borainTimeChoice日期时间选择插件.zip

    jQuery BorainTimeChoice是一款基于jQuery库的日期时间选择插件,专为网页界面设计,用于提供用户友好的日期和时间输入交互。...同时,对于有经验的开发者,这是一个学习和研究jQuery插件开发的好实例。

    jQuery初学实例代码集jQuerydemos.rar

    - **自定义插件开发(Custom Plugins Development)**:了解如何根据需求编写自己的jQuery插件。 ### 实践与学习建议 1. **动手实践**:每个示例代码都要亲自运行并尝试修改,观察不同的结果,以此加深理解。 2. ...

    jquery筛选器插件选项卡

    "js"可能是一个文件夹,包含了实现插件功能的JavaScript代码,包括jQuery插件的核心逻辑,以及可能的辅助脚本。"img"文件夹则可能包含了用于插件样式的图像资源,如图标、背景图等。 在具体实现中,jQuery插件通常...

    jQuery EasyUI仿Extjs漂亮界面实例演示

    通过扩展EasyUI现有的组件或使用jQuery插件机制,可以实现个性化功能。 9. **优化与性能**:在实际应用中,需要注意对EasyUI的优化,如减少不必要的DOM操作,正确使用异步加载,以及对大数据量表格的分页和虚拟滚动...

    jquery的实例juery最好的中文案例

    **jQuery是最受欢迎的JavaScript库之一,它通过简化DOM操作、事件处理、动画效果以及Ajax交互,...实例下载包含的文件应覆盖以上所有知识点,提供了详细的代码示例和运行效果,对于初学者和进阶者都是宝贵的参考资料。

    jQuery验证插件(表单验证)

    这个完整版的jQuery验证插件包含了一系列的功能和示例,帮助开发者轻松地创建安全、用户友好的表单。 首先,jQuery验证插件的核心功能在于它的验证规则。这些规则可以应用于表单字段,确保用户输入的数据符合预设的...

    备忘:jquery的一些实例

    在实际项目中,jQuery通常与其他工具和库一起使用,如`grunt` 和 `gulp` 作为构建工具,`bower` 或 `npm` 管理依赖,`git` 进行版本控制,以及`jshint` 和 `jshint-stylish` 用于代码质量和风格检查。 总结,jQuery...

Global site tag (gtag.js) - Google Analytics