}
//變量定義
var listBox=iBase.GetByClass('js','div');
var navItem=iBase.Id('demo').getElementsByTagName('h2');//此處將jQ區塊中的h2也取到了,所以頁面會有個小小的錯誤
var icoItem=null,boxItem=null,boxDisplay=null,elemIndex=null,elemParent=null;
//初始化展開第一個
for(var i=0; i < listBox.length;i++){
iBase.GetByClass('box','div',listBox[i])[0].style.display='block';
listBox[i].getElementsByTagName('span')[0].innerHTML='-';
}
//遍歷所有點擊項
for(var i=0; i < navItem.length;i++){
navItem[i].onclick=function(){
elemParent=iBase.Parents(this,'js');//獲取當前點擊所在區塊
navItem=elemParent.getElementsByTagName('h2');//獲取當前區塊下的點擊項
icoItem=elemParent.getElementsByTagName('span');//獲取當前區塊下的展開關閉
boxItem=iBase.GetByClass('box','div',elemParent);//獲取需要控制的區塊
elemIndex=iBase.Index(this,navItem);//獲取當前點擊在當前區塊點擊項中的索引
//切換展開關閉圖標
icoItem[elemIndex].innerHTML= icoItem[elemIndex].innerHTML=='-' ? '+' : '-';
if(iBase.AttrStyle(boxItem[elemIndex],'display')=='block'){
//控制項展開狀態下,隱藏當前,展開其他的第一項
//此處有個展開0/1的判斷,因為當點擊第一個時是不能再展開第一個的
boxItem[elemIndex].style.display='none';
if(elemIndex==0){
boxItem[1].style.display='block';
icoItem[1].innerHTML='-'
}else{
boxItem[0].style.display='block'
icoItem[0].innerHTML='-'
}
}else{
//控制項展開狀態下,展開當前,隱藏其他項
boxItem[elemIndex].style.display='block';
for(var k=0;k < boxItem.length; k++){
if(k!=elemIndex){
boxItem[k].style.display='none';
icoItem[k].innerHTML='+';
}
}
}
}
}
}
//jQuery版本 ***** start
$(function(){
//變量定義區
var _listBox=$('.jq');
var _navItem=$('.jq>h2');
var _boxItem=null, _icoItem=null, _parents=null, _index=null;
//初始化第一個展開
_listBox.each(function(i){
$(this).find('div.box').eq(0).show();
$(this).find('h2>span').eq(0).text('-');
});
//遍歷所有的點擊項
_navItem.each(function(i){
$(this).click(function(){
//找到當前點擊父元素為listbox(單個區塊)的元素
_parents=$(this).parents('.listbox');
_navItem=_parents.find('h2');//此區塊中的點擊項
_icoItem=_parents.find('span');//此區塊中的展開關閉圖標
_boxItem=_parents.find('div.box');//此區塊中展開關閉項
_index=_navItem.index(this);//取得當前點擊在當前區塊下點擊項中的索引值
if(_boxItem.eq(_index).is(':visible')){
//若當前點擊項下的展開關閉項是顯示的,則關閉,同時展開另外項中的第一個
_boxItem.eq(_index).hide().end().not(':eq('+_index+')').first().show();
_icoItem.eq(_index).text('+').end().not(':eq('+_index+')').first().text('-');
}else{
//若當前點擊項下的展開關閉項是隱藏的,則展開,同時隱藏其他項
_boxItem.eq(_index).show().end().not(':eq('+_index+')').hide();
_icoItem.eq(_index).text('-').end().not(':eq('+_index+')').text('+');
}
});
});
});
演示地址:http://demo.jb51.net/js/jsjq-flod-onlyone/index.htm
打包下載:http://www.gxlcms.com/jiaoben/33950.html
本人來自Mr.Think的博客 http://mrthink.net/jsjq-flod-onlyone/
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com