$.widget方法

最近研究了下$.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)

写这几点主要是为了备忘,方便自己以后查找,然后留下没有解决的问题,加深下印像,以便以后在查资料时碰到相应的解决方案时,更能引出共鸣

posted @ 2011-04-15 16:25  xiaoxiaohui  阅读(1492)  评论(0编辑  收藏  举报