最近研究了下$.widget("ui.scroll",{})插件,记录下一些心得吧,还有待解决的问题
$.widget("ui.scroll",{
div:$('<div></div>'),
t:{id:'id',name:'name'}
_init:function(){
var str=''
//调用这个插件时就直接执行这个方法
},
up:function(i){
}
})
$.extend($.ui.scroll,{
defaults:{
width:0,
arr:[]
}
})
在页面中可以多处调用这个插件,调用起来很方便$("#id").scroll({num:5})
总结下:这里面共有三种参数:
1.str是局部变量,每执行一次函数,就会重新生成一个,函数执行完成后,该变量就会消失,这种适合于每执行一次函数就重新生成一个
2.width是某次调用时从头到尾都可以访问到的,是一次调用的全局变量,下次调用时,就会新生成一个,这种适合于某次调用时各个方法需要用到的参数
3.div是整个页面共用的,不管调用几次该插件,那么该DIV都只会生成一个,大家共用,这种适合于那些常量,不会变的变量,多次调用时都需要的
需在留意以下地方:
this.options.num = 5
this.options.width= 0
this.element = $("#id")
$("#id").scroll({num:5})返回值是$("#id")
1.如果页面中有两到三次调用这个方法,那么this.div和this.t成了大家共用的,并不是每个方法都有一个,而是这两处调用的div和t是一个,别这样的来存变量,如果是一个常值可以这样定义,因为不需要变化的,如果div这个对象要添加到页面中的话,那么告诉你,这个div会添加到最后一个调用该插件的元素里面,前面调用的都不会有这个div,因为他是大家共用的
2.这个插件计算的一个属性例如width,好多方法都需要操纵这个属性,我想存储起来以便各个方法调用,这样避免在调用方法时传递参数很麻烦,可以在defaults这里加上你需要用到的变量不同的地方调用时this.options.width初始值都是0,如果在方法中使用this.options.arr.push(1),那么第一次调用时,this.options.arr =[],第二次调用变成了this.options.arr =[1],第三次调用:this.options.arr =[1,1]
3.调用这个插件的某个方法时可以:$("#id").scroll('up',5)
写这几点主要是为了备忘,方便自己以后查找,然后留下没有解决的问题,加深下印像,以便以后在查资料时碰到相应的解决方案时,更能引出共鸣