jQuery为开发插件提拱了两个方法,分别是:

1. jQuery.fn.extend();

2. jQuery.extend();

虽然 javascript没有明确的类的概念,但是可以构建类似类的定义。

jQuery便是一个封装得非常好的类,比如,$("#btn1") 会生成一个 jQuery类的实例,理解这一点很重要。

一、jQuery.extend(object)

它是为jQuery类添加类方法,可以理解为添加静态方法。

1.1 jQuery.extend

jQuery.extend({
  min: function(a, b) { return a < b ? a : b; },
  max: function(a, b) { return a > b ? a : b; }
}); jQuery.min(2,3); // 2
jQuery.max(4,5); //


1.2  jQuery.extend( target, object1, [objectN]  )

用一个或多个其他对象来扩展一个对象,返回被扩展的对象。

var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options); // 结果:settings == { validate: true, limit: 5, name: "bar" }

二、 jQuery.fn.extend(object)

$.fn是指jQuery的命名空间,fn上的成员(方法function及属性property),会对jQuery实例每一个有效。

查看jQuery代码,就不难发现。

jQuery.fn = jQuery.prototype = {

   init: function( selector, context ) {//.... 

};

原来 jQuery.fn = jQuery.prototype。

所以,它是对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”,jQuery类的实例可以使用这个“成员函数”。

比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:

$.fn.extend({
doAlertWhileClick:function() {
$(this).click(function(){
alert($(this).val());
});
}
});
$("#input1").doAlertWhileClick() // 页面调用

$("#input1") 为一个jQuery实例,当它调用成员方法 doAlertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。

转自:http://www.cnblogs.com/Dlonghow/p/4142034.html

最新文章

  1. 使用CocoaPods被卡住:Updating local specs repositories
  2. POSTMAN as debugger for integration APPs
  3. jmeter 与 java http
  4. nyoj------203三国志
  5. Kubuntu麦克风音频无声音
  6. CentOS Mysql自动备份 .txt
  7. 坏账,断供,四大国有资产管理公司(AMC):东方、长城、信达和华融
  8. HelloX操作系统网络功能简介及使用和开发指南
  9. iozone文件系统测试 与EXCEL 制图
  10. AVL旋转树
  11. linux apache添加多站点配置(Ubuntn和Centos)
  12. 用vue开发一个app(3,三天的成果)
  13. (Python3 自定义函数实现数字金字塔 代码
  14. 原生js阻止表单跳转
  15. Maven 安装 on centos7
  16. C++:error 1189(转)
  17. [math][mathematica] archlinux 下 mathematica 的安装 (科学计算软件 mathematica/matlab/sagemath)
  18. Hibernate.编写xml文件无自动提示信息
  19. pta l2-18(多项式A除以B)
  20. zend framework分析总结[转]

热门文章

  1. python SyntaxError: Non-ASCII character &#39;\xe8&#39; in file C:\Users\nwpujun\PycharmProjects\projects\hrl1\hrlAgent\src\li_nn.py on line 52
  2. leetcode个人题解——two sum
  3. 特殊符号 &amp; 以太坊
  4. rewrite or internal redirection cycle while processing nginx重定向报错
  5. C中的除法,商和余数的大小、符号如何确定
  6. 第十八次ScrumMeeting会议
  7. 策略模式,ASP.NET实现
  8. Java微笔记(1)
  9. scrapy(1)——scrapy介绍
  10. vuex介绍--一篇看懂vuejs的状态管理神器