如何扩展Jquery?

1. 有两种方式来扩展JQuery,分别是:

$.extend(object): 为域名jQuery增加方法,为静态方法,全局方法,任何人都可以调用,调用的时候,需要直接加上$或者jQuery前缀。

$.fn.extend(object): $.fn = $.prototype, 因此可以从这里看出,这张扩展方式是在为每个jQuery对象增加方法,因为每个jQuery对象的实例,都可以获得在这里扩展的方案。调用的时候,不需要添加特殊的前缀,直接选取jQuery对象之后,就可以调用了。

2. jQuery是一个封装的非常好的类,如果使用$(“#id”)可以生成一个jQuery对象,但是注意,jQuery对象并不是真正的HTML标记所对应的对象,而是包含一个标记所对应的数组,数组中的成员才是标记所对应的对象。

下面代码可以演示这两种方式:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title></title><script type="text/javascript" src="../lib/jquery-1.6.3.js"></script><script type="text/javascript">$(function() {$.extend({staticextend: function() {alert("This is a static extend function, called staticextend.")}});$.fn.extend({jqueryextend: function() {alert("all jquery object can call this function, and I am jqueryextend.")}});//以静态方法的形式直接使用jquery本身的对象调用if ($.staticextend) {$.staticextend();} else {alert("There is not a function called staticextend in Jquery Object itself.");}//以静态方法的形式直接调用jqueryextendif ($.jqueryextend) {$.jqueryextend();} else {alert("There is not a function called jqueryextend in Jquery Object itself. You must get wrong.");}//获取一个jquery实例var jdiv = $(".idtest");//一个jquery实例本身包含了一个数组对象if (jdiv.length>1) {alert("we can see jdiv contains an array object!");}//如果jquery有多个,需要这样调用。jdiv.each(function() {alert("I am "+ $(this).attr("id")); //这里不能直接使用this,因为this是htmlelement,没有attr方法。if (jdiv.staticextend) {jdiv.staticextend();} else {alert("There is not a function called staticextend in jdiv ");}if (jdiv.jqueryextend) {jdiv.jqueryextend();} else {alert("There is not a function called jqueryextend in jdiv. You must get wrong.");}});});</script>
</head>
<body><div id="one" class="idtest"></div>
<div id="two" class="idtest"></div>
</body>
</html>

如果扩展jquery已经存在的方法,比如拿jqgrid来说,如果你想修改某个方法,让他在方法的执行前后做些事情,这样的话,我们可以这样做:

var oldEditCell = $.fn.jqGrid.editCell;
$.jgrid.extend({editCell: function (iRow,iCol, ed){var ret;// do someting beforeret = oldEditCell.call (this, iRow, iCol, ed);// do something afterreturn ret; // return original or modified results}
});

在这里,我们覆盖了原始的editCell方法,你可以在这个方法的前后做些事情。

转载于:https://www.cnblogs.com/kevinhigher/archive/2011/10/15/2213759.html

实例说明扩展JQuery方式相关推荐

  1. jquery function_前端基础进阶(十三)详细图解jQuery扩展jQuery插件

    UI 鉴赏 早几年学习前端,大家都非常热衷于研究jQuery源码. 我至今还记得当初从jQuery源码中学到一星半点应用技巧的时候常会有一种发自内心的惊叹,"原来JavaScript居然可以 ...

  2. 何恺明团队推出Mask^X R-CNN,将实例分割扩展到3000类

    翻译 | AI科技大本营(ID:rgznai100) 参与 | shawn,刘畅 今年10月,何恺明的论文"Mask R-CNN"摘下ICCV 2017的最佳论文奖(Best Pa ...

  3. 《扩展 jQuery》——6.3 总结

    本节书摘来自异步社区<扩展 jQuery>一书中的第6章,第6.3节,作者:[美]Keith Wood著,更多章节内容可以访问云栖社区"异步社区"公众号查看 6.3 总 ...

  4. Ajax和JSON-学习笔记02【JQuery方式实现Ajax】

    Java后端 学习路线 笔记汇总表[黑马程序员] Ajax和JSON-学习笔记01[原生JS方式实现Ajax] Ajax和JSON-学习笔记02[JQuery方式实现Ajax] Ajax和JSON-学 ...

  5. jquery订阅发布插件代码草稿,为jquery扩展jquery.publish,jquery.subscribe方法

    jquery订阅发布插件代码草稿! jquery订阅发布插件代码草稿,为jquery扩展jquery.publish,jquery.subscribe方法 --- jquery订阅发布插件代码草稿 & ...

  6. 扩展Jquery方法创建LigerUI Grid

    ///** //*封装jquery get请求ajax //*author:叶明龙 //*time:2012-12-10 //*/ function getAjax(url, para, fn) {i ...

  7. 《扩展 jQuery》——2.3 总结

    本节书摘来自异步社区<扩展 jQuery>一书中的第2章,第2.3节,作者:[美]Keith Wood 译者: 李强更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

  8. Dubbo实例~直连的方式

    Dubbo实例~直连的方式 2.4 Dubbo实例~直连的方式 2.4.1 服务的提供者 2.4.2 服务的消费者 2.4.1 服务的提供者.消费者两个服务跑起来 2.4 Dubbo实例~直连的方式 ...

  9. php实现自动播放ppt,JavaScript_jquery实现简单的自动播放幻灯片效果,本文实例讲述了jquery实现简单 - phpStudy...

    jquery实现简单的自动播放幻灯片效果 本文实例讲述了jquery实现简单的自动播放幻灯片效果.分享给大家供大家参考.具体实现方法如下: html部分: Pretty cool eh? This s ...

最新文章

  1. iOS 储存用户信息设置封装 直接调用即可(部分是代码片段)
  2. 基于 Alluxio 的 HDFS 多集群统一入口的实现
  3. c++ 重载 重写_Java | 深入理解方法调用的本质(含重载与重写区别)
  4. 在Windows的CMD中如何设置支持UTF8编码?
  5. long long c语言_带你打开C语言的大门之C语言的变量
  6. Visual C#使用ADO.NET自定义类MyDBase连接SQL Server数据库
  7. 腾讯地图拾取坐标html,腾讯地图Api 实现拾取坐标功能示例
  8. opencv保存图像自动命名
  9. jersey tomcat MySQL_IDEA+Jersey+Tomcat搭建RESTful API
  10. 多元统计分析 (一):聚类分析
  11. ss php 搭建,sspanel 前端搭建教程
  12. 简单易学的机器学习算法——Mean Shift聚类算法
  13. 我所理解的Reed solomon 算法
  14. 2021-7-19 fact函数求阶乘的用法
  15. poj-openjudge 1042:Moles 解题报告
  16. 计算机社团活动展望未来,社团展望未来演讲稿(2)
  17. 为什么我们求职 找工作 一定要写好简历?
  18. td可编辑(html标签可编辑)
  19. mmdetection3d SUN RGB-D数据集预处理
  20. Oracle安装之1521端口及任何端口被占用错误

热门文章

  1. 如何使用Android SDK开发Android应用?
  2. 看看HashSet源码
  3. thinkphp集成系列之phpmailer批量发送邮件
  4. Symantec Backup Exec 2012 Agent For Linux安装
  5. Qt学习之路_1(安装及首次体验)
  6. 第五周-第11章节-Python3.5-内置模块详解之Xml模块
  7. [福大软工] W班 总成绩排行榜
  8. mysql数据库授权
  9. 洛谷P2412 查单词 [trie树 RMQ]
  10. ubuntu16.04 英文环境安装中文输入法