Tab页界面 用jQuery及Ajax技术实现(php后台)


Posted in Javascript onOctober 12, 2011

网上的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; 
} 
?>
Javascript 相关文章推荐
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
Mar 17 Javascript
基于jquery的让页面控件不可用的实现代码
Apr 27 Javascript
IE6,IE7下js动态加载图片不显示错误
Jul 17 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
Sep 03 Javascript
JQuery中的$.getJSON 使用说明
Mar 10 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
JS实现根据文件字节数返回文件大小的方法
Aug 02 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
Jul 03 Javascript
JS实现网页抢购功能(触发,终止脚本)
Nov 27 Javascript
新手必须知的Node.js 4个JavaScript基本概念
Sep 16 Javascript
基于layui内置模块(element常用元素的操作)
Sep 20 Javascript
vue 实现element-ui中的加载中状态
Nov 11 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
Oct 12 #Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
Oct 11 #Javascript
推荐10个超棒的jQuery工具提示插件
Oct 11 #Javascript
namespace.js Javascript的命名空间库
Oct 11 #Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
Oct 10 #Javascript
jquery.tmpl JQuery模板插件
Oct 10 #Javascript
brook javascript框架介绍
Oct 10 #Javascript
You might like
使用PHP获取网络文件的实现代码
2010/01/01 PHP
PHP $_FILES函数详解
2011/03/09 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
js判断是否是手机页面
2017/03/17 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
深入理解python try异常处理机制
2016/06/01 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
幼儿园小班评语
2014/04/18 职场文书
数学系毕业生求职信
2014/05/29 职场文书
工人先进事迹材料
2014/12/26 职场文书
打架检讨书
2015/01/27 职场文书
校车司机安全责任书
2015/05/11 职场文书
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers