jquery插件类型:
1. jquery方法:
大部分jquery插件都是这种类型的插件,由于这种插件是将对象方法封装起来,在jquery选择器获取jquery对象过程中进行操作,从而发挥jquery强大的选择器优势。
2. 全局函数:
也可以把自定义的功能函数独立附加到jquery命名空间下,从而作为jquery作用域下的一个公共函数使用。但全局函数没有被绑定到jquery对象上,故不能在选择器获取的jquery对象上调用。需要通过jquery.fn()或$.fn()方式进行引用。
3. 选择器:
觉得jquery提供的选择器不够用,或不方便的话,可以考虑自定义选择器。
jquery插件机制:
① jquery.extend()方法:能够创建全局函数或选择器。
by:所谓全局函数,就是jquery对象的方法,实际上就是位于jquery命名空间内部的函数,有人把这类函数称为实用工具函数,这些函数都有一个共同特征,就是不直接操作dom元素,而是操作javascript的非元素对象,或者执行其他非对象的特定操作,如jquery的each()函数和noconflict()函数
例:在jquery命名空间上创建两个公共函数
jQuery.extend({
minValue : function(a,b){
return a},
maxValue : function(a,b){
return a}
})
$(function(){
$("input").click(function(){
var a = prompt("请输入一个数值?");
var b = prompt("请再输入一个数值?");
var c = jQuery.minValue(a,b);
var d = jQuery.maxValue(a,b);
alert("你输入的最大值是:" + d + "\n你输入的最小值是:" + c);
});
})
※ jQuery.extend()方法除了可以创建插件外,还可以用来扩展jQuery对象。
例如:调用jQuery.extend()方法把对象a和对象b合并为一个新的对象,并返回合并对象将其赋值给变量c
var a = {name : "zhu",pass : 123}
var b = {name : "wang",pass : 456,age : 1}
var c = jQuery.extend(a,b);
$(function(){
for(var name in c){
$("div").html($("div").html() + "
"+ name + ":" + c[name]);
}
})
例:创建jQuery全局函数
jQuery.css8 = {
minValue : function(a,b){
return a},
maxValue : function(a,b){
return a}
}
$(function(){
$("input").click(function(){
var a = prompt("请输入一个数值?");
var b = prompt("请再输入一个数值?");
var c = jQuery.css8.minValue(a,b);
var d = jQuery.css8.maxValue(a,b);
alert("你输入的最大值是:" + d + "\n你输入的最小值是:" + c);
});
})
By:如果要向jQuery命名空间上添加一个函数,只需要将这个新函数制定为jQuery对象的一个属性即可。其中jQuery对象名也可以简写为$,jQuery.css8==$.css8
② jQuery.fn.extend()方法:能够创建jQuery对象方法。
例:来个最简单的jQuery对象方法
jQuery.fn.test = function(){
alert("这是jQuery对象方法!");
}
$(function(){
$("div").click(function(){
$(this).test();
});
})










