开始写第一个插件
优质
小牛编辑
135浏览
2023-12-01
1.4. 开始写第一个插件
代码位于plugin_first
让我们动手改造一下tab.js吧:
1.4.1. 代码
;(function($) {
$.fn.tab = function(options) {
// 将defaults 和 options 参数合并到{}
var opts = $.extend({},$.fn.tab.defaults,options);
return this.each(function() {
var obj = $(this);
$(obj).find('.tab_header li').on('mouseover', function (){
$(obj).find('.tab_header li').removeClass('active');
$(this).addClass('active');
$(obj).find('.tab_content div').hide();
$(obj).find('.tab_content div').eq($(this).index()).show();
})
});
// each end
}
//定义默认
$.fn.tab.defaults = {
};
})(jQuery);
这段代码除了套用jQuery plugin模板外,就是几处select变成基于obj的查找的selector,其他与之前无异。
是不是很简单?
1.4.2. 解释一下配置项
// 将defaults 和 options 参数合并到{}
var opts = $.extend({},$.fn.tab.defaults,options);
1.4.3. 缓存this
// 将defaults 和 options 参数合并到{}
var obj = $(this);
1.4.4. select和$.fn
1.4.5. 调用方式
<script>
$(function(){
$('.tab').tab();
});
</script>
是不是更简单?
1.4.6. jQuery plugin template
;(function($) {
$.fn.XXXXXX = function(options) {
// 将defaults 和 options 参数合并到{}
var opts = $.extend({},$.fn.XXXXXX.defaults,options);
return this.each(function() {
var obj = $(this);
...
});
// each end
}
//定义默认
$.fn.XXXXXX.defaults = {
};
})(jQuery);
1.4.7. 插件特点
- 有默认项
```
$.fn.XXXXXX.defaults
```
- 基于selector
```
return this.each(function() { var obj = $(this);
...
});
```
解读:
- 有默认项,是约定大约配置,让用户用的时候如果没有个性化需求,可以很简单,安装插件的默认配置走,如果有个性化需求,修改配置项,同样很简单
- 基于selector意味着你可以复用,给tag或class应用此插件,以便写更少代码,完成更多功能
亲,你明白插件的好处了么?如果没明白继续往下看