Tab頁介面,用jQuery及Ajax技術實現_jquery

來源:互聯網
上載者:User
到了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.jb51.net) 詳細出處參考:http://www.jb51.net/article/20091.htm
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.