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. swiper 增加同页面增加2个滚动

    js代码 <script type="text/javascript"> var mySwiper = new Swiper('.slide_a',{ noSwipin ...

  2. Robot Framework--12 RFS+AutoItLibrary测试web对话框

    转自:http://blog.csdn.net/tulituqi/article/details/21871247 Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过 ...

  3. Winform端上传图片到服务器

    转载自  在winform实现文件上传到服务器 webform上传文件可能大家都写过很多,一个HtmlInputFile.PostedFile.SaveAs就搞定了,不过不知道大家有没有在winfor ...

  4. C语言内存管理(转)

    伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆.如果 ...

  5. highstock 的tooltip框里面的内容 保留两位小数的办法

    $("#flux_chart_container").highcharts('                           },            borderWidt ...

  6. PHP简单封装MysqlHelper类

    MysqlHelper.class.php 1: <?php 2:  3: /** 4: * Mysql数据帮助类 5: */ 6: class MysqlHelper 7: { 8: func ...

  7. HDOJ 2444 The Accomodation of Students

    染色判读二分图+Hungary匹配 The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others)    Memory Limi ...

  8. Bus Hound 的使用方法

    背景: 最近在研究USB相关协议,需要对USB数据进行抓取分析,Bus Hound是个非常赞的工具,在此将其使用方法记录下来,以备下次快速上手使用. 正文: 主界面如下: 首先关注菜单栏三个选项: C ...

  9. XH

    1.  又到父亲节,那就给老爹做顿饭呗,让他开心开心. 老爸吃了一口我炒的菜,流露出感动的泪花说:儿呀,你能为爸爸做饭,爸爸感到特别开心,但是你这个菜,看在今天是父亲节 我能不能不吃呀! 2.  一哥 ...

  10. linux运维人员必会开源运维工具体系

    http://oldboy.blog.51cto.com/2561410/775056