`

跟我一起学写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);


详细出处参考:http://www.jb51.net/article/22849.htm
分享到:
评论

相关推荐

    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 源码+实例+注释

    4. **链式操作**: jQuery 对象返回自身,使得多个方法调用可以连在一起,如 `$("#element").css("color", "red").addClass("highlight")`。 二、jQuery 源码解析 jQuery 源码分为多个部分,包括核心函数、选择器...

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

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

    jquery开发入门整理(所需要了解的)

    - **插件系统**:jQuery的插件系统允许开发者创建自定义的jQuery插件,这些插件可以扩展jQuery的核心功能,满足特定的应用需求。 ### 浅析jQuery框架与构造对象 jQuery框架的核心是`$`符号,这是一个全局函数,用于...

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

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

    JQuery实例源代码

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

    Jquery开发实例

    - **自定义插件**:了解如何编写自己的Jquery插件,扩展其功能,提升代码复用性。 5. **实战案例** - **导航栏响应式**:利用Jquery实现导航栏在不同屏幕尺寸下的适配,如隐藏或显示菜单项。 - **图片懒加载**:...

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

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

    jquery筛选器插件选项卡

    在具体实现中,jQuery插件通常会定义一个公共函数,通过$.fn.extend()方法扩展jQuery对象。这个函数接收一些参数,即选项卡的配置项,如默认选中项、动画效果、事件处理等。CSS3的使用可能会涉及以下内容: 1. 选择...

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

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

    JQuery实例下载

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

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

    这个压缩包文件包含的资源是将以上技术结合在一起的实例,展示了如何在 ASP.NET 开发环境中集成 jQuery UI 1.8.16、jQuery EasyUI 1.2.2 以及 zTree,实现异步动态加载的树形视图。这可能是为了教学目的,帮助开发者...

    jQuery初学实例代码集jQuerydemos.rar

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

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

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

    jQueryAPI-1.7.1-CN 手册

    jQuery对象返回的是jQuery实例,这意味着所有jQuery方法调用都可以链接在一起,形成链式调用,如`$("#element").addClass("active").show().slideUp();`。 七、插件开发 jQuery插件机制允许开发者扩展其功能。通过`...

    备忘:jquery的一些实例

    开发插件通常涉及`$.fn.extend()` 来扩展jQuery对象的方法。 ### 8. 函数链 jQuery的一个重要特性是函数链,即多个jQuery方法可以连续调用,如`$("#element").css("color", "red").slideUp();` 这样可以提高代码的...

Global site tag (gtag.js) - Google Analytics