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. OpenGL Pixel Linked-List

    Keywords: opengl linked list http://on-demand.gputechconf.com/gtc/2014/presentations/S4385-order-ind ...

  2. Linux下小工具使用总结

    0. 前言 这篇博客仅用于记录个人在工作中用到的一个小工具,后续用到别的会再补充. 1. Tmux 终端分用器(multiplexer),可以在一个屏幕上创建多个终端,这个工具也可以用于结对编程. 个 ...

  3. Exercise16_22.java

    import javax.swing.*;import java.awt.*;import java.awt.event.*; public class Exercise16_22 extends J ...

  4. MYSQL 免安装版(windows 7/64)

    本文介绍在本地安装MYSQL数据库,免安装版相关配置 一.下载 mysql下载地址1:http://dev.mysql.com/downloads/mysql/ 二.解压MySQL压缩包 将已下载的M ...

  5. ImageTragick Exploit & Fix

    ImageMagick是一款广泛流行的图像处理软件,有无数的网站(国内国外都有)使用它来进行图像处理,本周二,ImageMagick披露出了一个严重的0day漏洞,此漏洞允许攻击者通过上传恶意构造的图 ...

  6. .NET Framework源码查看及下载

    一.资源 1.http://referencesource.microsoft.com/ 二.备注 1.可在线预览.Net Framework 4.6.1源码实现

  7. 新浪微博客户端(36)-自定义带placeholder的TextView

    iOS 上自带的UITextView竟然不能设置placeholder,但是UITextView却可以,我也真是醉了.没办法了,自己写一个 DJTextView.h #import <UIKit ...

  8. poj3254 Corn Fields (状压DP)

    http://poj.org/problem?id=3254 Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissio ...

  9. javascript 时间代理

    <button class="btn-active">按钮1</button> <button>按钮2</button> <b ...

  10. 部分LINUX系统由图形界面启动变更为命令行界面启动的方法

    背景: 图形界面很绚丽,但是现在并不需要图形界面,只需要命令行即可,所以要将图形界面自启动给关闭.    正文:   Centos:     更改文件/etc/inittab的其中一行    id:5 ...