老师,插件的写法不太懂
$.fn.extend({ showHide:function(option){ return this.each(function(){ var $this=$(this), // mode=showHide($this,typeof option==='object' && option); options=$.extend({},defaults,typeof option==='object'&& option); //单例思想,前面多次调用时,每次都要调用showHide函数,这里将showHide()保存下来 mode=$this.data('showHide'); //利用data将showHide保存下来 if (!mode) { $this.data('showHide',mode=showHide($this,options)); } if (typeof mode[option] === 'function') { mode[option](); } }); } })
return之后为什么要用 this.each()
32
收起
正在回答
2回答
同学你好,关于同学的问题解答如下:
1、$.fn.extend({})是jquery中的写法,是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”,简单说就是给jQuery对象添加方法。比如要开发一个插件,当点击编辑框的时候,弹出当前编辑框里的内容,代码如下:
$("#input1") 为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。
2、先return this.each(),后调用each()方法,each()方法返回jQuery对象,所以这样就可以继续链式操作了。
3、if (typeof mode[option] === 'function') {}是判断传入的值是否是mode的一个功能,是就执行,mode[option]();就是执行的意思。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星