基于jquery的插件开发
最近在公司做一个项目,由于后台数据太多需要分页显示,在网上找了很多插件都没有找到合适的分页插件,所有的分页插件始终达不到自己想要的效果。由于这个项目也不是很赶,就在网上查找各种资料,自己写一个基于jquery的分页插件;在接下来的一篇博客中我将详细为大家介绍如何基于jquery书写分页插件,在讲解之前,先给大家介绍一下基于jquery书写插件的相关知识!
jquery插件开发主要有三种方法:
1、通过$.extend()方法来拓展jquery;
2、通过$.fn向jquery添加新的方法;这次在分页插件中就用到了该方法,为jQuery添加新的方法。
3、通过$.widget()应用jQuery UI的部件工厂方式创建;不过第三种方法不常用,我们经常使用的就是第一和第二这两个方法,主要原因还是因为相对于第三个方法来说前两个简单一点,好理解。
$.extend是最简单的一种,只是在jquery基础上拓展(添加)新方法,只需要用$.functionName就可以调用,也就是说一处定义多处调用;给大家举个例子看看,我们就定义一下输出函数吧
$.extend({
console: function(str) {
console.log('hello,Welcome to use the console method defined based on jquery,'+str);
}
})
$.console(); //调用
$.extend
运行结果如下:

但是这种方法无法利用jquery选择器的优点以及便利性,所以我们还需要学习了解第二种方法$.fn。为什么$.fn定义的方法就可以使用dom节点选择器对象获取这些方法呢,那是因为jQuery内部定义了一个jQuery.fn对象,查看jQuery源码可以发现jQuery.fn=jQuery.prototype,也就是说jQuery.fn对象是jQuery的原型对象,jQuery的DOM操作方法都在jQuery.fn对象上定义的,然后jQuery对象就可以通过原型继承这些方法。
我们先使用$.fn定义一个最简单的改变字体颜色的小插件,代码如下:
$.fn.changeColor = function(color){
this.css('color',color);
}
$.fn.changeColor
在这边定义好插件之后就可以调用了,例如;$('domName').changeColor('red')就可以改变该DOM节点的额字体颜色为红色;
但常常很多时候我们需要链式调用相关的方法,这就需要我们对上面的方法做以修改,只需要在上面代码方法的末尾加上一段代码就好
return this;
这样就可以链式调用,例如$("p").changeColor("red").addClass("red-color");
但是很多时候js库都会使用$符号,虽然jQuery可以使用jQuery.noConflict()方法交出$符号的使用权,但是如果定义插件的时候,使用$.fn对象来定义的,那么这些插件使用的时候就会受到其它使用$变量的js库的影响。对于这种情况,我们可以使用立即执行函数通过传参的方式封装插件。形式如下:
(function($){
$.fn.changeColor = function(colorStr){
this.css("color",colorStr);
return this;
}
}(jQuery));
防止$污染
在上面的插件方法中我们可以看到使用了传递参数,但是很多时候我们都使用传递对象的方式传递参数这个时候就用到了$.extend方法,这个方法在这里的用法就是合并两个对象,即把后面一个对象的存在的属性值赋值给第一个对象,具体参考这里,给大家附上相关代码以供参考
(function($){
$.fn.changeColor = function(option){
var defaultSetting = { colorStr:"green",fontSize:12};
var setting = $.extend(defaultSetting,option);
this.css("color",setting.colorStr).css("fontSize",setting.fontSize+"px");
return this;
}
}(jQuery));
说道这里基于jquery开发插件的方法已经介绍完毕,下面一篇博客我会给大家介绍怎么基于jquery开发一款分页插件。
在查看的时候如果发现什么问题,欢迎大家在评论区提出来,我们相互讨论
基于jquery的插件开发的更多相关文章
- 源码来袭!!!基于jquery的ajax分页插件(demo+源码)
前几天打开自己的博客园主页,无意间发现自己的园龄竟然有4年之久了.可是看自己的博客列表却是空空如也,其实之前也有写过,但是一直没发布(然而好像并没有什么卵用).刚开始学习编程时就接触到博客园,且在博客 ...
- 基于JQuery的获取鼠标进入和离开容器方向的实现
做动画时,需要判断鼠标进入和退出容器的方向.网上找到的基于JQuery的实现方法,用函数封装了一下,写了一个示例.注意绑定鼠标事件用的是on(),所以JQuery版本需高于1.7. <!DOCT ...
- 基于jQuery的Validate表单验证
表单验证可以说在前端开发工作中是无处不在的~ 有数据,有登录,有表单, 都需要前端验证~~ 而我工作中用到最多的就是基于基于jQuery的Validate表单验证~ 就向下面这样~ 因为今天有个朋 ...
- 基于jQuery的自适应图片左右切换
效果预览:http://hovertree.com/code/jquery/smjv6d0n.htm 基于jQuery编写的横向自适应幻灯片切换特效 全屏自适应jquery焦点图切换特效,在IE6这个 ...
- 使用 Sticky-Kit 实现基于 jQuery 的元素固定效果
元素固定效果在网页中应用得很多,比较常见的使用场景有改进导航,显示广告.Sticky-Kit 是一个非常方便的 jQuery 插件,简化了创建/管理粘元素,有复杂的使用功能.这些功能包括:处理多个固定 ...
- 基于jquery的bootstrap在线文本编辑器插件Summernote
Summernote是一个基于jquery的bootstrap超级简单WYSIWYG在线编辑器.Summernote非常的轻量级,大小只有30KB,支持Safari,Chrome,Firefox.Op ...
- 模仿iframe框架,由分隔栏动态改变左右两侧div大小———基于jQuery
<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8&qu ...
- 基于jquery fly插件实现加入购物车抛物线动画效果,jquery.fly.js
在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高.下面介绍基于jque ...
- 模仿win10样式,基于jquery的时间控件
工作需要,写了一个基于jquery的时间控件,仿win10系统时间控件格式. 目前基本功能都有了,但时间格式只实现少数,但由于结构设计已经充分优化,填充起来非常容易. 这个控件相对网上其他的时间控件, ...
随机推荐
- free 或delete后指针怎么样了
free()和delete()只是把指针所指向的内存释放掉,但是并没有把指针本身删除,也没有把指针置为NULL; #include<iostream> using namespace st ...
- (二十九)java条件控制语句培训笔记
java结构控制语句示例:if,if else,switch case 定义三个变量: :在这个例子中,if并列,则每一次都会进行判断,条件为true则输出里边的内容 ,因此,这里会输出one和fou ...
- 如何拼接FusionCharts的JSON格式的双轴图
1.问题背景 假如,项目中遇到这样一个问题:利用FusionCharts中的JSON格式拼接双轴图,并将JSON字符串转换成JSON对象传输到前台,在页面上展示出来. 2.设计源码 /** * * @ ...
- poi 导入导出的api说明(大全)
原文链接:http://www.cnblogs.com/qingruihappy/p/8443101.html poi 导入导出的api说明(大全) 一. POI简介 ApachePOI是Apache ...
- xml的xPath解析规则
一,为什么要用xpath技术 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! 二,xpath的规则 2.1,/根元素的案例 /AAA 选择根元素AAA ...
- Python Web-第五周-Web Services and XML(Using Python to Access Web Data)
1.Web Service Overview 1.Data on the Web Python Dictionary 和 Java HashMap间需要建立一个桥梁,可以用XML或是JSON 2.XM ...
- beautifulsoup库使用
介绍与安装 Beautiful Soup 是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据.BeautifulSoup 用来解析 HTML 比较简单, API非常人 ...
- 【BZOJ1212】L语言(AC自动机)
[BZOJ1212]L语言(AC自动机) 题面 BZOJ 题解 很自然的,既然要匹配单词,那就全部都丢到\(AC\)自动机里面去 现在想想怎么匹配 先是\(AC\)自动机正常的匹配 如果此时这个位置能 ...
- Kruskal重构树(货车运输)
... 和Kruskal生成树一样 本来是u,v连一条f的边 现在变成新建一个点,点权为f,u v都像它连无边权的边 (实际上应该是u的根和v的根) 这样树有一些性质: 1.二叉树 2.原树与新树两点 ...
- Java集合中迭代器的常用用法
该例子展示了一个Java集合中迭代器的常用用法public class LinkedListTest { public static void main(String[] args) { List&l ...