当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Tab页界面,用jQuery及Ajax技术实现

Javascript
用户注册常用javascript代码
JavaScript 事件监听实例代码[兼容IE,firefox] 含注释
javascript appendChild,innerHTML,join性能比较代码
JavaScript 继承详解 第一篇
javascript 控制 html元素 显示/隐藏实现代码
Javascript 判断函数类型完美解决方案
获取URL地址中的文件名和参数的javascript代码
js 获取浏览器高度和宽度值(多浏览器)
FF IE兼容性的修改小结
JS URL传中文参数引发的乱码问题
javascript 24小时弹出一次的代码(利用cookies)
ie focus bug 解决方法
javascript concat数组累加 示例
javascript 触发事件列表 比较不错
当文本框的值发生改变时,触发事件,在IE中有效
javascript 操作table的特性
jquery判断单个复选框是否被选中的代码
关于javascript中的parseInt使用技巧
JavaScript 密码强度判断代码
js跨域和ajax 跨域问题的实现思路

Javascript 中的 Tab页界面,用jQuery及Ajax技术实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 451 ::
收藏到网摘: n/a

从桌面开发的时代开始,Tab页就是一个优异的界面布局形式,兼有菜单的样式和充分复用有限的界面的优点。 到了B/S开发时代,网页前端布局也把Tab页的布局形式吸收了过来。特别是和Ajax技术结合起来,可以更充分发挥Tab页的良好表现力和数据缓存的优势,是一种良好的网页布局形式。
网上的Tab页代码很多,实现也大同小异 ,但代码都显得凌乱,若要真的用的话,必须费劲的吃透它,才能进行二次定制开发,为我所用。实际上实现这个Tab页界面非常简单,仅仅是通过Ajax技术偷偷的获取信息,然后在一块区域轮流显示而已(通过显示和隐藏层,或复用一个层,轮流向里边填充Html数据)。
自己的开发的代码自己最清楚,用起来也应该最顺手,要扩展的话脑子也不犯晕。代码如下,还在不断修改中。
复制代码 代码如下:

<!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>我的Tabs选项卡(Ajax版本)</title>
<style type=”text/css”>
body {font-size:12px; }
#tab0,#tab1,#tab2 {background:url(images/gray.png); cursor:hand;}
</style>
<script type=”text/javascript” src=”jquery/jquery.js”></script>
<script type=”text/javascript” src=”class.js”></script>
<script type=”text/javascript” src=”my_ajax_tabs.js”></script>
<script type=”text/javascript”>
$(document).ready(function()
{
//————————-
//tabs 配置信息
var tabs = [”#tab0″, “#tab1″, “#tab2″]; //tab 数组 id
var datas = “#div_data”; //显示区对象的id号
var event_type = “mouseover”; //触发事件(click/dblclick/mouseover/focus/…)
var default_tab = “#tab0″;
//切换图片
var tab_selected_bgimg = “images/green.png”;
var tab_unselected_bgimg = “images/gray.png”;
//切换文本颜色
var tab_selected_txtcolor = “#ff6600″;
var tab_unselected_txtcolor = “#666666″;
//
urls = [
“my_ajax_server.php?app=tab0″,
“my_ajax_server.php?app=tab1″,
“my_ajax_server.php?app=tab2″,
]
//**Begin:固定代码*********************************
for (var i=0; i<tabs.length; i++)
{
$(tabs[i]).bind(event_type, handler);
}
$(default_tab).trigger(event_type);
//
function handler()
{
//初始化缓存数组
var localdatas = new Array(); //缓存浏览器本次数据
for (var i=0; i<tabs.length; i++)
{
localdatas[i]=”;
}
//重置所有tabs
for (var i=0; i<tabs.length; i++)
{
$(tabs[i]).css(”background-image”, “url(”+ tab_unselected_bgimg +”)”);
$(tabs[i]).css(”color”, tab_unselected_txtcolor);
}
var curr_index;
for(var i=0;i<tabs.length;i++)
{
if($(tabs[i]).attr(”id”)==$(this).attr(”id”))
{
curr_index = parseInt(i);
}
}
//
$(this).css(”background-image”, “url(”+ tab_selected_bgimg +”)”);
$(this).css(”color”, tab_selected_txtcolor);
if(localdatas[curr_index]==”)
{
//ajax获取数据(默认method=get)
$.ajax
({
url: urls[curr_index], //后台处理程序
cache: false,
timeout: 20000,
error:function()
{
alert(”error while submitting”);
},
success:function(data)
{
localdatas[curr_index] = data; //缓存浏览器本次数据
$(datas).html(data);
}
});
}
else
{ //显示缓存数据
$(datas).html(datas[curr_index]);
}
}
//**End:固定代码*********************************
//—————–
});
</script>
</head>
<body>
<table border=”0″ width=”500″ height=”25″ border=”0″ align=”center” cellpadding=”0″ cellspacing=”0″>
<tr>
<td width=”97″ id=”tab0″>tab0</td>
<td width=”30″></td>
<td width=”97″ id=”tab1″>tab1</td>
<td width=”30″></td>
<td width=”97″ id=”tab2″>tab2</td>
<td width=”149″></td>
</tr>
</table>
<table border=”1″ width=”500″ height=”60″ border=”0″ align=”center” cellpadding=”0″ cellspacing=”0″>
<tr>
<td>
<div id=”div_data”></div>
</td>
</tr>
</table>
</body>
</html>

my_ajax_server.php文件:
复制代码 代码如下:

<?php
/*******************************************
* File: my_ajax_server.php
********************************************/
error_reporting(7);
set_magic_quotes_runtime(0);
$app = $_GET['app'];
switch ($app)
{
case “tab0″: //
?>
from TAB0
<?php
break;
case “tab1″: //
?>
from TAB1
<?php
break;
case “tab2″: //
?>
from TAB2
<?php
break;
default:
echo ‘my_ajax_server.php error.';
break;
}
?>

张庆(网眼) 2009-9-18
看完这篇可以参考下一篇文章 用jQuery技术实现Tab页界面之二
本文来自: 软晨学习网(www.ruanchen.com) 详细出处参考:http://www.ruanchen.com/rticle/20091.htm