jQuery为开发插件提拱了两个方法

Q&A

怎样为jQuery对象设计自定义方法, 强调一点,是"jQuery对象"而非jQuery自身.请区别为jQuery设计自定义方法

语法现象1:
$.extend() 或 jQuery.extend() 或 jQuery.extend(object)
//可以理解为为jQuery类添加类方法或静态方法
【例子1.】:

//设计部分
jQuery.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});
//调用部分,还是必须通过jQuery进行引用
jQuery.min(2,3); // 2
jQuery.max(4,5); //
 
语法现象2:
$.extend(object, {}) = jQuery.extend(object,{})
 $.extend($.validator.messages, {
required: "必选字段",
remote: "请修正该字段",
email: "请输入正确格式的电子邮件",
url: "请输入合法的网址",
date: "请输入合法的日期",
dateISO: "请输入合法的日期 (ISO).",
number: "请输入合法的数字",
digits: "只能输入整数",
creditcard: "请输入合法的信用卡号",
equalTo: "请再次输入相同的值",
accept: "请输入拥有合法后缀名的字符串"
});

这代码是在研究jQuery.validation插件时,验证提示消息汉化时遇到的的,validation版本v1.15.1,把$改写成jQuery是等效的.

其中,第1行$.validator是validation插件预定义对象引用名(这点应该是通过查询validation开发API查到的吧), 当然你运行这就代码前,必须先引入jQuery.validate.js文件,至此,我非常好奇,jQuery.validate插件是怎样coding的.

区别

jQuery.fn.extend(object);
因为:jQuery.fn = jQuery.prototype
//可以理解为对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。
<head>
<script type="text/javascript">
$.fn.extend({
alertWhileClick:function() {
$(this).click(function(){
alert($(this).val());
});
}
});
$(function(){
$("#input1").alertWhileClick();
});
</script>
</head>
<body>
<input id="input1" type="text" value="Oman" />
</body>

等价语法

<script type="text/javascript">
$.fn.alertWhileClick = function() {
$(this).click(function(){
alert($(this).val());
});
};
$(function(){
$("#input1").alertWhileClick();
});
</script> <body>
<input id="input1" type="text" value="Oman" />
</body>

参考之
《理解jquery的$.extend()、$.fn和$.fn.extend()》

jquery中的$.fn的用法

随机推荐

  1. Python + OpenCV2 系列:1 - 配置

    Python+OpenCV2+Eclipse+Windos 8.1(32bits): 最初的目的是做图像处理,opencv强大的社区支持,让我想从matlab转到opencv框架下进行试验,而Pyth ...

  2. IIS站点无法访问..点浏览IIS窗口直接关掉

    呃..其实这个问题很简单.. 大家可以先看这位大婶写的博文.. http://blog.csdn.net/chenguang79/article/details/7220232 如果网站一访问IIS就 ...

  3. Python开发【第二篇】:初识Python

    Python开发[第二篇]:初识Python   Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...

  4. [MongoDB]可视化工具Robomongo

    摘要 习惯了可视化的管理数据的方式,通过敲命令,确实有些不自在.这里推荐一个mongodb的可视化工具——Robomongo 相关文章 [MongoDB]入门操作 [MongoDB]增删改查 [Mon ...

  5. [MongoDB]mapReduce

    摘要 上篇文章介绍了count,group,distinct几个简单的聚合操作,其中,group比较麻烦一点.本篇文章将学习mapReduce的相关内容. 相关文章 [MongoDB]入门操作 [Mo ...

  6. Java学习注意事项

    一个Java文件中可以包含多个类. 如果有public类,则文件名必须和public类一样. 例如: class Pie { void f(){ System.out.println("Pi ...

  7. 7个Linux和Ubuntu下的免费CSS编辑器

    一个好的编辑器是世界上所有程序员和web开发人员梦寐以求的东西.代码编辑器和集成开发环境是程序员工作时的左膀右臂.还在纠结使用什么编辑器么?下面我们将推荐7个主要用于Linux操作系统的免费CSS代码 ...

  8. [AngularJS] 入门

    什么是AngularJS AngularJS是Google开源的一款JavaScript MVC框架,弥补了HTML在构建应用方面的不足, 其通过使用指令(directives)结构来扩展HTML词汇 ...

  9. nyoj 613 免费馅饼 广搜

    免费馅饼 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...

  10. ubuntu安装ssh

    为了解决远程连接ubuntu服务器控制端,方便操作.ubuntu不同的版本安装方式一致!首先在ubuntu服务器下安装SSH服务linux安装命令:sudo apt-get install opens ...