一
1、$(fn)
是$(document).ready(function(){})的简写。需要把所有$操作符写入。在DOM全部加载完后执行。
fn是参数
常用写法:$(function(){})
或: ( function(){})(jquery); //??
2、$.fn
fn是参数,给jquery定义新的方法的方法名字
常用写法:$.fn = function(){}
调用:$.fn();
如:
$.fo=function(){alert('fo');}
$.fo(); //调用,弹出‘fo'
3、编写jquery插件需要注意的地方
(1) 推荐的命名方法:jquery.[插件名].js
(2) 所有的对象方法都应当附加到jquery.fn对象上面。
所有的全局函数应当附加到jquery对象本身上。
(3) 在插件内部,this指向的是当前通过选择器获取的jquery对象,而不像一般方法那样:内部的this指向的是DOM元素。
(4) 可以通过this.each来遍历所有元素。
(5) 所有方法或函数插件,都应当以封号结尾 。避免压缩出现问题。保险方式:在插件头部添加一个封号,以免压缩的不规范给插件带来影响。
(6) 插件应该返回一个jquery对象,以保证插件的可链式操作。
(7) 避免在插件内部使用$作为jquery对象的别名,而应当使用完整的jquery来表示,避免冲突。
4、jquery插件的机制
两个扩展jquery功能的方法:jquery.fn.extend(); jquery.extend()
jquery.fn.extend() 封装对象方法的插件。
jquery.extend() 封装全局函数的插件;选择器插件
(1)jquer.fn.extend()
(2)jquery.extend()
扩展已经有的objiect的对象:var newSrc = $.extend(dest,src1,src2,src3...)将后面几个合到dest中,返回值为合并后的dest。
使用命名空间:
避免变量名与其他jquery插件冲突:将一些方法封装到另一个自定义的命名空间。
jquery.myPlugin={
foo:function(){},
bar:function(param){}
};
采用命名空间的函数仍然是全局函数。
调用:
$.myPlugin.foo();
$.myPlugin.bar('hello');
二、jquery插件编写
写jquer插件,需要在$.fn对象后面增加一个属性名,这个属性名就是插件名称。
一般框架|:
(function($){
$.fn.myPlugin = function(){};
})(jquery);