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. JAVA编程思想(第四版)学习笔记----11.4 容器的打印

    import static java.lang.System.out; import java.util.ArrayList; import java.util.Collection; import ...

  2. JAVA NIO FileChannel 内存映射文件

      文件通道总是阻塞式的. 文件通道不能创建,只能通过(RandomAccessFile.FileInputStream.FileOutputStream)getChannel()获得,具有与File ...

  3. Python导出Excel为Lua/Json/Xml实例教程(三):终极需求

    相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 Python导出E ...

  4. 关于Mysql 触发器

    首先,测试版本 Mysql 5.6. 然后再看触发器的语法 CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigge ...

  5. SQL Server 2008 R2——当前日期下,一年前数据的统计值

    =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮 ...

  6. CentOS安装Nginx-1.6.2+安全配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了pcre等基础组件,具体见<CentOS安装LNMP环境的基础 ...

  7. linux下安装 oracle 11g

    oracle 11g安装 一.环境准备 划分区 / 15000M /tmp 4096M /boot 100M Swap 4096M /u01 剩余空间 2.更改主机名,ip地址 3.安装软件包 那么l ...

  8. Java使用MyEclipse构建webService简单案例

     什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过web ...

  9. 内网劫持渗透新姿势:MITMf简要指南

    声明:本文具有一定攻击性,仅作为技术交流和安全教学之用,不要用在除了搭建环境之外的环境. 0×01 题记 又是一年十月一,想到小伙伴们都纷纷出门旅游,皆有美酒佳人相伴,想到这里,不禁潸然泪下.子曰:& ...

  10. [java]设计模式1-单例模式

    单例模式:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例.在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或少具有资源管 ...