javascript動態(tài)添加刪除tabs標(biāo)簽的方法
本文實(shí)例講述了javascript動態(tài)添加刪除tabs標(biāo)簽的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
<html>
<HEAD>
<TITLE>網(wǎng)頁對話</TITLE>
<LINK href="style.css" type=text/css rel=stylesheet>
<script>
function $(obj)
{
var o = typeof(obj)=="object" ? obj : document.getElementById(obj);
return o;
}
function addChannel(ChannelId,LabelText){
var ChatBoardId="ChatBoard__"+ChannelId;
var LabelId="Label__"+ChannelId;
/* 如果頻道已存在 **/if($(ChatBoardId)){
return ;bai
};
/* 添加控件,先刪除原來 '等待客戶連接' 這列 **/
var cell0=$("LabelContainer").childNodes[0];
if(cell0.id=='Label_Default')$("LabelContainer").removeChild(cell0);
$("ChatBoardContainer").appendChild(buildChatBoard(ChatBoardId));
$("LabelContainer").appendChild(buildLabel(LabelId,LabelText));
/* 顯示新打開的聊天窗口 **/toggChatBoard(ChannelId);
};
function buildChatBoard(boardId){
var div=document.createElement("DIV");
div.id=boardId;
div.style.width="100%";
div.style.height='258px';
/* div.style.border = '1px solid #ff0000'; **/
div.style.overflowY="scroll";
div.style.padding="3";
return div;
};
function buildLabel(LabelId,LabelText){
var label=document.createElement("TD");
label.id=LabelId;
label.noWrap=true;
/* label.width = LabelText.length * 12 + 30; /* +20是為了豈有此留位置給關(guān)閉按鈕 **/
label.height=22;
label.name=LabelText;
label.title="點(diǎn)擊這里切換交談對象";
label.innerHTML=LabelText;
var lid=LabelId.substr(LabelId.indexOf("__")+2);
label.innerHTML+=" <SPAN title='關(guān)閉' style='FONT-WEIGHT: bold; FONT-SIZE: 12px;FONT-FAMILY: marlett; CURSOR: hand; COLOR: #555555; MARGIN-RIGHT: 4px' onclick=/"removeChatBoard('"+lid+"')/" onmouseout='this.style.color=/"#ffffff/"' onmouseover='this.style.color=/"#ffff00/"'>r</SPAN>";
label.style.cursor="hand";
/* label.style.border = "1px solid #CC99FF"; **/
label.style.textAlign="center";
label.style.padding="2";
label.style.backgroundImage="url(Images/title2.gif)";
label.onclick=function (){
var id=event.srcElement.id;
id=id.split("__")[1];
if(event.srcElement.tagName=='SPAN')return ;
toggChatBoard(id);
};
label.onmouseover=function (){
event.srcElement.oldbg=event.srcElement.style.backgroundImage;
event.srcElement.style.backgroundImage="url(Images/title2_on_green.jpg)";
};
label.onmouseout=function (){
event.srcElement.style.backgroundImage=event.srcElement.oldbg;
};
return label;
};
function toggChatBoard(id){
var boards=$("ChatBoardContainer");
for(i=0;i<boards.childNodes.length;i++){
if(boards.childNodes[i].id.indexOf(id)>-1){
boards.childNodes[i].style.display='';
boards.childNodes[i].innerHTML=id;
}else {
boards.childNodes[i].style.display='none';
};
};
/* 標(biāo)簽欄 **/var labels=$("LabelContainer");
for(i=0;i<labels.childNodes.length;i++){
if(labels.childNodes[i].id.indexOf(id)>-1){
labels.childNodes[i].oldbg=labels.childNodes[i].style.backgroundImage;
labels.childNodes[i].style.backgroundImage="url(Images/title2_on_green.jpg)";
var id=labels.childNodes[i].id;
id=id.substr(id.indexOf("__")+2);
var name=labels.childNodes[i].name;
}else {
labels.childNodes[i].style.backgroundImage="url(Images/title2.gif)";
};
};
};
function removeChatBoard(id){
var arChannel=$("ChatBoardContainer").childNodes;
for(i=0;i<arChannel.length;i++){
/* alert(arChannel[i].id + "," + id); */if(arChannel[i].id.indexOf(id)>-1){
$("ChatBoardContainer").removeChild(arChannel[i]);
};
};
/* 標(biāo)簽欄 **/var arLabel=$("LabelContainer").childNodes;
for(i=0;i<arLabel.length;i++){
/* alert(arLabel[i].id + "," + id); */if(arLabel[i].id.indexOf(id)>-1){
$("LabelContainer").removeChild(arLabel[i]);
};
};
if($("ChatBoardContainer").childNodes.length<1){
var td=document.createElement("TD");
td.innerText="等待客戶連接..";
td.align="center";
td.id='Label_Default';
$("LabelContainer").appendChild(td);
return ;
};
var newid=arChannel[0].id;
newid=newid.split("__")[1];
toggChatBoard(newid);
};
function scrollLable(action){
if(action==-1){
clearInterval(scrollLableTimer);
return ;
};
scrollLableTimer=setInterval("doScrollLable("+action+")",30);
};
function doScrollLable(action){
var divLabelContainer=$('divLabelContainer');
if(action==1){
if(divLabelContainer.scrollLeft<0){
clearInterval(scrollLableTimer);
divLabelContainer.scrollLeft=0;
return ;
};
divLabelContainer.scrollLeft-=10;
};
if(action==2){
if(divLabelContainer.scrollLeft>$('tbLabelContainer').clientWidth){
clearInterval(scrollLableTimer);
divLabelContainer.scrollLeft=$('tbLabelContainer').clientWidth;
return ;
};
divLabelContainer.scrollLeft+=10;
};
};
</script>
<STYLE type=text/css>
.imgbtn{ border:1px solid #ffffff;cursor:hand;}
.imgbtn_on{ border:1px solid #9326FF;}
a.toolButton{
color:#375FB9!important;
padding:0px;
border:1px solid #B1D6F3;
text-align:center;
height:16px;
width:16px;
}
a.toolButton:hover{
background:#BADBEF;
border:1px solid #144985;
}
</STYLE>
</HEAD>
<body>
<a href="javascript:void(0)" onClick="addChannel('ceshi','ceshi')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test1','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test2','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test3','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test4','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test5','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test6','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test7','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test8','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test9','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test10','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test11','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test12','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test13','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test14','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test15','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test16','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test17','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test18','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test19','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test20','test')">add tabs</a>
<a href="javascript:void(0)" onClick="addChannel('test21','test')">add tabs</a>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD id=ChatBoardTitle style="COLOR: #555555" background=Images/title2.gif height=27>
<TABLE style="TABLE-LAYOUT: fixed" cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD>
<DIV id=divLabelContainer style="OVERFLOW-X: hidden; WIDTH: 100%">
<TABLE id=tbLabelContainer height=27 cellSpacing=1 cellPadding=3 border=0>
<TBODY>
<TR id=LabelContainer>
<TD id=Label_Default noWrap align=middle>等待客戶連接...</TD></TR></TBODY></TABLE></DIV></TD>
<TD width=30><SPAN onmouseup=scrollLable(-1) onmousedown=scrollLable(1) onMouseOver="this.style.color='red'" style="CURSOR: hand; FONT-FAMILY: webdings" onMouseOut="this.style.color=''">7</SPAN><SPAN onmouseup=scrollLable(-1) onmousedown=scrollLable(2) onMouseOver="this.style.color='red'" style="CURSOR: hand; FONT-FAMILY: webdings" onMouseOut="this.style.color=''">8</SPAN></TD></TR></TBODY></TABLE></TD></TR>
<TR><!-- ChatBoardContainer 內(nèi)不能放任何內(nèi)容,否則腳本會出錯(cuò) --><!--<div id="ChatBoard" style="padding:3px; overflow-y: scroll; width: 100%; height: 258px"></div>-->
<TD id=ChatBoardContainer style="HEIGHT: 258px" vAlign=top></TD></TR></TBODY></TABLE>
</body>
</html>
用到的圖片title2_on_green.jpg
<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/jiedushi/title2_on_green.jpg">
title2.gif<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/jiedushi/title2.gif">
希望本文所述對大家的javascript程序設(shè)計(jì)有所幫助。
- js封裝tab標(biāo)簽頁實(shí)例分享
- js與jquery分別實(shí)現(xiàn)tab標(biāo)簽頁功能的方法
- 最簡單純JavaScript實(shí)現(xiàn)Tab標(biāo)簽頁切換的方式(推薦)
- 純css+js寫的一個(gè)簡單的tab標(biāo)簽頁帶樣式
- js(JavaScript)實(shí)現(xiàn)TAB標(biāo)簽切換效果的簡單實(shí)例
- js實(shí)現(xiàn)點(diǎn)擊切換TAB標(biāo)簽實(shí)例
- 簡單純js實(shí)現(xiàn)點(diǎn)擊切換TAB標(biāo)簽實(shí)例
- js實(shí)現(xiàn)的tab標(biāo)簽切換效果代碼分享
- JS實(shí)現(xiàn)常見的TAB、彈出層效果(TAB標(biāo)簽,斑馬線,遮罩層等)
- javascript實(shí)現(xiàn)不同顏色Tab標(biāo)簽切換效果
- 基于JavaScript實(shí)現(xiàn)TAB標(biāo)簽效果
- JavaScript實(shí)現(xiàn)的原生態(tài)Tab標(biāo)簽頁功能【兼容IE6】
相關(guān)文章
你可能從未使用過的11+個(gè)JavaScript特性(小結(jié))
這篇文章主要介紹了你可能從未使用過的11+個(gè)JavaScript特性(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
Bootstrap布局組件應(yīng)用實(shí)例講解
這篇文章主要針對Bootstrap布局組件應(yīng)用進(jìn)行實(shí)例講解,感興趣的小伙伴們可以參考一下2016-02-02
js性能優(yōu)化之?dāng)?shù)組模式實(shí)例詳解
這篇文章主要為大家介紹了js性能優(yōu)化之?dāng)?shù)組模式實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
JavaScript樹形組件實(shí)現(xiàn)無限級樹形結(jié)構(gòu)
這篇文章主要介紹了JavaScript樹形組件實(shí)現(xiàn)無限級樹形結(jié)構(gòu),一種構(gòu)建多級有序樹形結(jié)構(gòu)JSON(或XML)數(shù)據(jù)源的方法,下面更多相關(guān)資料需要的小伙伴可以參考一下2022-03-03
JavaScript實(shí)現(xiàn)網(wǎng)頁頭部進(jìn)度條刷新
這篇文章主要介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁頭部進(jìn)度條刷新實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04
Actionscript與javascript交互實(shí)例程序(修改)
這篇文章主要介紹了Actionscript與javascript交互實(shí)例程序(修改)的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09

