轻松实现jquery选项卡切换效果
很早之想就学习jquery的插件写法,一直拖到现在,今天趁着没什么工作忙,搜索些资料学习下,写了个比较简单的选项卡效果。
刚开始有看到一个很通俗易通的例子:alert对话框。
jquery.alertMsg.js
/**
* [description]
* @param {[type]} $ [description]
* @return {[type]} [description]
*/
(function($){
$.fn.alertMsg = function(options) {
var defaults = {
mouseEvent: 'clcik',
msg: 'hello world'
}
var options = $.extend(defaults, options);
var $this = $(this);
$this.on(options.mouseEvent, function(e){
alert(options.msg);
})
}
})(jQuery)调用方式:
<span id="test">test</span>
$(function(){
$('#test').alertMsg({
mouseEvent : "click",
msg : "第一次写插件!"
});
});jQuery插件结构
(function($){
// tabs 自定义的插件名称
$.fn.tabs = function(options) {
// 设置默认参数
var defaults = {
activeClass: 'active'
...
}
// 对象扩展
var options = $.extend(defaults, options);
return $(this).each(function(){
// 编写相应实现代码
})
}
})(jQuery)选项卡实现:
1、HTML结构
<div id="tab"> <ul> <li>选项1</li> <li>选项2</li> <li>选项3</li> <li>选项4</li> </ul> <div id="tabCon" class="tab-con"> <div>1的内容</div> <div>2的内容</div> <div>3的内容</div> <div>4的内容</div> </div> </div>
2、jquery.tabs.js
(function($){
$.fn.tabs = function(options) {
var defaults = {
Event: 'click',
activeClass: 'active'
}
var options = $.extend(defaults, options);
return $(this).each(function(){
var $thisTab = $(this).find('ul');
var $tabCon = $thisTab.siblings('div');
$tabCon.find('div').each(function(){
$(this).hide();
});
$thisTab.find('li:first').addClass(options.activeClass);
$tabCon.find('div:first').show();
$thisTab.find('li').each(function(index){
$(this).on(options.Event, function(){
$(this).siblings().removeClass(options.activeClass);
$(this).addClass(options.activeClass);
$tabCon.find('div').eq(index).show().siblings().hide();
});
});
});
}
})(jQuery)3、调用
$('#tab').tabs({
activeClass: 'active'
});小结:对jQuery插件的初识,感觉应该还要继续优化和扩展,继续学习!
精彩专题分享:javascript选项卡操作方法汇总 jQuery选项卡操作方法汇总
相关推荐
APCDE 2020-06-11
viewerlin 2020-05-25
adc00 2020-01-04
老高 2019-12-30
luoj 2011-09-13
xiaoguolaoshi 2008-07-20
Rgenxiao 2011-09-08
支离破碎 2014-06-30
qiuhaotc 2012-02-19
85931235 2012-03-28
bruceli 2019-05-14
南城小伙 2019-06-10
逆风飞舞0 2019-05-14
87530399 2014-05-26
chenyangah 2017-03-31
84236532 2016-11-17
zhangpuego 2016-07-16
Jiminull 2016-03-03