jQuery实现tab面板的代码

jQuery可以实现面板操作,非常简单的代码实现ajax效果的面板操作,留着以后直接拿过来用,呵呵
$(document).ready(function(){
	//找到所有的标签
	/*
	$("li").mouseover(function(){
		//将原来显示的内容区域进行隐藏
		$("div.contentin").hide();
		//当前标签所对应的内容区域显示出来
		});
	*/
	$("#tabfirst li").each(function(index){
		//每一个包装li的jquery对象都会执行function中的代码
		//index是当前执行这个function代码的li对应在所有li组成的数组中的索引值
		//有了index的值之后,就可以找到当前标签对应的内容区域
		$(this).mouseover(function(){	
			var liNode = $(this);
			timoutid = setTimeout(function(){
				//将原来显示的内容区域进行隐藏
				$("div.contentin").removeClass("contentin");
				//对有tabin的class定义的li清除tabin的class
				$("#tabfirst li.tabin").removeClass("tabin");
				//当前标签所对应的内容区域显示出来
				//$("div").eq(index).addClass("contentin");
				$("div.contentfirst:eq(" + index + ")").addClass("contentin");
				liNode.addClass("tabin");	
			},300);			
		}).mouseout(function(){
			clearTimeout(timoutid);	
		});
	});

	//在整个页面装入完成后,标签效果2的内容区域需要装入静态的html页面内容
	$("#realcontent").load("TabLoad.html");
	//找到标签2效果对应的三个标签,注册鼠标点击事件
	$("#tabsecond li").each(function(index){
		$(this).click(function(){
			$("#tabsecond li.tabin").removeClass("tabin");
			$(this).addClass("tabin");
			if (index == 0) {
				//装入静态完成页面
				$("#realcontent").load("TabLoad.html");
			} else if (index == 1) {
				//装入动态部分页面
				$("#realcontent").load("TabLoad.jsp h2");
			} else if (index == 2) {
				//装入远程数据(这里也是一个动态页面输出的数据)
				$("#realcontent").load("TabData.jsp")
			}
		});
	});
	//对于loading图片绑定ajax请求开始和交互结束的事件
	$("#contentsecond img").bind("ajaxStart",function(){
		//把div里面的内容清空
		$("#realcontent").html("");
		//整个页面中任意ajax交互开始前,function中的内容会被执行
		$(this).show();
	}).bind("ajaxStop",function(){
		//整个页面中任意ajax交互结束后,function中的内容会被执行	
		$(this).slideUp("1000");
	});
});
对应的HTML
<html>
	<head>
		<title>JQuery实例-标签页效果</title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<link type="text/css" rel="stylesheet" href="css/tab.css" />
		<script type="text/javascript" src="js/jquery.js"></script>
		<script type="text/javascript" src="js/tab.js"></script>
	</head>
	<body>
		<ul id="tabfirst">
			<li class="tabin">标签1</li>
			<li>标签2</li>
			<li>标签3</li>
		</ul>
		<div class="contentin contentfirst">我是内容1</div>
		<div class="contentfirst">我是内容2</div>
		<div class="contentfirst">我是内容3</div>
		<br />
		<br />
		<br />
		<ul id="tabsecond">
			<li class="tabin">装入完整页面</li>
			<li>装入部分页面</li>
			<li>从远程获取数据</li>
		</ul>
		<div id="contentsecond">
			<img alt="装载中" src="images/img-loading.gif" />
			<div id="realcontent"></div>
		</div>
	</body>
</html>

我自己的实现,简单一些,没加ajax效果,不过自己的用起来还是觉得很方便,万能了。哇咔咔
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>tab面板</title>
<script src="lib/jquery.js"></script>
<script>
$(function(){
	$("#tab li").each(function(index){
		var liNode = $(this);
		$(this).mouseover(function(){
			setTimeout(function(){
				$("#tab li").removeClass("current");
				liNode.addClass("current");
				$(".content").removeClass("visible");
				$(".content:eq(" + index + ")").addClass("visible");
			},300);
		});
	});
})
</script>
</head>
<style>
#tab {
	margin:0;
	padding:0;
	width:400px;
	list-style:none;
}
#tab .current {
	background:#ffffFF ;
}

#tab li {
	float:left;
	padding:20px 40px;
	background:#999999;
}
.content {
	width:400px;
	height:300px;
	background:#009900;
	display:none;
}
.visible {
	display:block;
}
</style>
<body>
<ul id="tab">
	<li class="current">面板一</li>
    <li>面板二</li>
    <li>面板三</li>
</ul>
<br style="clear:both;"/>
<div class="content visible">内容一</div>
<div class="content">内容二</div>
<div class="content">内容三</div>
</body>
</html>
原文链接:,转发请注明来源!

发表评论

  • 1 Responses to “jQuery实现tab面板的代码”