jquery插件的学习可以点击这里

举个例子

  1. //首先先来一个插件
  2. (function($){
  3. $.fn.extent({
  4. bigfont:function(){
  5. return this.css('fontSize':"30px")
  6. }
  7. })
  8. })(jQuery)

<p class='p1'>好好学习天天向上</p>

运行

jquery的插件机制

jquery.extent方法的重载,如$.each,$.ajax的功能

举个例子

  1.  

<p>2+1=?<p>

运行

关于extent的重载的深入学习

$.extent([deep],obj1,obj2,obj3)
//deep: 可选。如果设为true,则递归合并。
// target: 待修改对象。
// object1: 待合并到第一个对象的对象。
// objectN: 可选。待合并到第一个对象的对象。

  1. //举个例子

运行

  1. //举个例子

运行

  1. //举个例子

运行

插件的另外的写法

  1. //(1)
  2. !function($){
  3. //do something
  4. }(jQuery);
  5. (function($){
  6. //do something
  7. })(jQuery)

插件实例

  1. //闭包限定命名空间
  2. (function ($) {
  3. $.fn.extend({
  4. "highLight": function (options) {
  5. var opts = $.extend({}, defaluts, options); //使用jQuery.extend 覆盖插件默认参数
  6. this.each(function () { //这里的this 就是 jQuery对象
  7. //遍历所有的要高亮的dom,当调用 highLight()插件的是一个集合的时候。
  8. var $this = $(this); //获取当前dom 的 jQuery对象,这里的this是当前循环的dom
  9. //根据参数来设置 dom的样式
  10. $this.css({
  11. backgroundColor: opts.background,
  12. color: opts.foreground
  13. });
  14. });
  15. }
  16. });
  17. //默认参数
  18. var defaluts = {
  19. foreground: 'red',
  20. background: 'yellow'
  21. };
  22. })(window.jQuery);
  1. //闭包限定命名空间
  2. (function ($) {
  3. $.fn.extend({
  4. "highLight": function (options) {
  5. //检测用户传进来的参数是否合法
  6. if (!isValid(options))
  7. return this;
  8. var opts = $.extend({}, defaluts, options); //使用jQuery.extend 覆盖插件默认参数
  9. return this.each(function () { //这里的this 就是 jQuery对象。这里return 为了支持链式调用
  10. //遍历所有的要高亮的dom,当调用 highLight()插件的是一个集合的时候。
  11. var $this = $(this); //获取当前dom 的 jQuery对象,这里的this是当前循环的dom
  12. //根据参数来设置 dom的样式
  13. $this.css({
  14. backgroundColor: opts.background,
  15. color: opts.foreground
  16. });
  17. //格式化高亮文本
  18. var markup = $this.html();
  19. markup = $.fn.highLight.format(markup);
  20. $this.html(markup);
  21. });
  22. }
  23. });
  24. //默认参数
  25. var defaluts = {
  26. foreground: 'red',
  27. background: 'yellow'
  28. };
  29. //公共的格式化 方法. 默认是加粗,用户可以通过覆盖该方法达到不同的格式化效果。
  30. $.fn.highLight.format = function (str) {
  31. return "" + str + "";
  32. }
  33. //私有方法,检测参数是否合法
  34. function isValid(options) {
  35. return !options || (options && typeof options === "object") ? true : false;
  36. }
  37. })(window.jQuery);

jquery插件扩展的学习的更多相关文章

  1. FireFox 浏览器插件/扩展开发学习

    2014-11-08 内容存档在evernote,笔记名"FireFox 浏览器插件/扩展开发学习"

  2. JS原生ajax与Jquery插件ajax深入学习

    序言: 近来随着项目的上线实施,稍微有点空闲,闲暇之时偶然发现之前写的关于javascript原生xmlHttpRequest ajax方法以及后来jquery插件ajax方法,于是就行了一些总结,因 ...

  3. jQuery插件扩展方法

    jQuery为扩展插件提拱了两个方法,分别是: jQuery.extend(object) —— 给jQuery对象添加方法. jQuery.fn.extend(object) —— 为扩展jQuer ...

  4. jQuery插件扩展extend的实现原理

    相信每位前端的小伙伴对jQuery都不陌生吧,它最大的魅力之一就是有大量的插件,去帮助我们更轻松的实现各种功能. 前几天晚上,闲来无事,就自己动手写了个简单的jQuery插件,功能很简单,只是让选定的 ...

  5. [js插件开发教程]原生js仿jquery架构扩展开发选项卡插件

    jquery插件一般是这么干的: $.fn.插件名称 = function(){}, 把插件的名称加在.fn上,在源码里面实际上是扩展到构造函数的原型对象上,如果你没看过jquery的源代码,或者你曾 ...

  6. 利用jQuery来扩展一个瀑布流插件

      简单了解jQuery.fn.extend() jQuery.fn.extend()函数用于为jQuery扩展一个或多个实例属性和方法(主要用于扩展方法). (截图来自jQuery文档) 为了更清晰 ...

  7. JQuery插件的学习

    此前一直想就关于Jquery插件的开发,做一个深入的学习,由于各种原因,当然主要是自己太懒了...今天就系统分析一下Jquery插件的开发(参考了http://www.xprogrammer.com/ ...

  8. jQuery插件学习(一)

    由于项目开发需要,经常会用到一些jquery插件,但网上已有的插件常常又不能100%满足业务需求,所以就想自己能看懂插件的代码,进行一些功能上的改动和补充,或者能自己自定义插件就更好了.所以这段时间会 ...

  9. 基于jquery的插件turn.js学习笔记

    基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...

随机推荐

  1. Eclipse中JAR System library 没有怎么添加?

    1.打开  >>  Eclipse 2.右击项目   >>  Build path  >>  Configure Build path  如图1: 图1 3.进入 ...

  2. 吐槽CodeDom

    用着.NET Framework,发现了CodeDom的先天性缺陷,心里百般难受. 不知道 CodeDom 是什么的请看这里 CodeDom_百度百科 这里有CodeDom非常全的中文教程 CodeD ...

  3. [LeetCode] Read N Characters Given Read4 用Read4来读取N个字符

    The API: int read4(char *buf) reads 4 characters at a time from a file.The return value is the actua ...

  4. [个人翻译]Redis 集群教程(上)

    官方原文地址:https://redis.io/topics/cluster-tutorial  水平有限,如果您在阅读过程中发现有翻译的不合理的地方,请留言,我会尽快修改,谢谢.        这是 ...

  5. redis慢查询日志

    运维需要记录一下主redis中那些“慢操作”的命令,然后找到相关的业务方,不然的话,阻塞 就不好玩了.然后就直接在redis手册中就找到了相关的命令. SLOWLOG subcommand [argu ...

  6. Codeforces Round #383(div 2)

    A.快速幂 B. 题意:求ai^aj=x的数对个数,x和a[]给定 分析:a^b=c,则a^c=b,所以求ai^x=aj的个数,枚举一遍即可 C. 题意:给你一个有向图,每个点的出边只有一条,求最小的 ...

  7. 关于js的回调函数的一点看法

    算了一下又有好几个月没写博客了,最近在忙公司android的项目,所以也就很少抽时间来写些东西了.刚闲下来,我就翻了翻之前看的东西.做了android之后更加感觉到手机端开发的重要性,现在做nativ ...

  8. 【教程】CDQ套CDQ——四维偏序问题

    前言 上一篇文章已经介绍了简单的CDQ分治,包括经典的二维偏序和三维偏序问题,还有带修改和查询的二维/三维偏序问题.本文讲介绍多重CDQ分治的嵌套,即多维偏序问题. 四维偏序问题       给定N( ...

  9. Go语言常用命令介绍

    go build go build 命令主要是用于测试编译.在包的编译过程中,若有必要,会同时编译与之相关联的包. 如果是普通包,当你执行go build命令后,不会产生任何文件. 如果是main包, ...

  10. 如何获取用户的真实IP

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了 Apache,Nagix等反向代理软件就不能获取到客户端的真实 ...