Changeset 22602 for branches/version-2_12-dev/html/user_data
- Timestamp:
- 2013/03/05 08:52:08 (13 years ago)
- Location:
- branches/version-2_12-dev/html/user_data/packages/sphone
- Files:
-
- 2 edited
-
css/block.css (modified) (1 diff)
-
js/category.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/html/user_data/packages/sphone/css/block.css
r21995 r22602 250 250 vertical-align: middle; 251 251 } 252 #categorytree li ul { 253 border: none; 254 margin: 0; 255 padding: 0; 256 } 252 257 253 258 #categorytree li:first-child { -
branches/version-2_12-dev/html/user_data/packages/sphone/js/category.js
r22586 r22602 1 /*------------------------------------------2 指定されたノードを、オープンまたはクローズする3 ------------------------------------------*/4 function openOrClose(tgt){5 //指定ノードが「hidden」のとき、リストを可視化6 if(tgt.style.visibility == "hidden"){7 tgt.style.display = "block";8 tgt.style.visibility = "visible";9 tgt.style.height = "auto";10 tgt.style.paddingTop = "0.25em";11 tgt.style.lineHeight = "1em";12 tgt.style.opacity = 1.0;13 }14 //指定ノードが「hidden」でないとき、リストを隠す15 else{16 tgt.style.display = "none";17 tgt.style.visibility = "hidden";18 tgt.style.height = "0px";19 tgt.style.paddingTop = "0";20 tgt.style.lineHeight = 0;21 tgt.style.opacity = 0;22 }23 }24 25 /*------------------------------------------26 リストープン処理27 ------------------------------------------*/28 function listopen(lv, num){29 var tgt = document.getElementsByClassName("level" + lv)[num];30 //次のレベルをサーチ → 次のレベルのリストをオープンする31 for(var i=0; i < document.getElementsByClassName("level" + (lv+1)).length; i++){32 var next_tgt = document.getElementsByClassName("level" + (lv+1))[i];33 //li34 if (next_tgt.parentNode == tgt || next_tgt.parentNode.parentNode == tgt){35 openOrClose(next_tgt);36 }37 }38 //次のレベルをサーチ → 表示ボタンの状態を変更39 for(var i=0; i < tgt.childNodes.length; i++){40 var next_tgt = tgt.childNodes[i];41 //ul42 if(next_tgt.tagName == "UL"){43 if(next_tgt.style.height == "0px"){44 if(event.srcElement.parentNode.className == "category_header plus"){45 event.srcElement.innerText = '−';46 event.srcElement.parentNode.className = "category_header minus";47 }48 next_tgt.style.height = "auto";49 }50 else{51 for(var i=0; i<next_tgt.parentNode.childNodes.length; i++){52 if(event.srcElement.parentNode.className == "category_header minus"){53 event.srcElement.innerText = '+';54 event.srcElement.parentNode.className = "category_header plus";55 }56 }57 next_tgt.style.height = "0px";58 }59 }60 }61 }62 63 /*------------------------------------------64 クリックイベントを設定する65 ------------------------------------------*/66 function setclickevent(tgt, lv, num){67 //レベル1以外の時は非表示に68 if(lv!=1){69 tgt.style.visibility = "hidden";70 tgt.style.display = "none";71 tgt.style.height = "0px";72 tgt.style.lineHeight = 0;73 tgt.style.paddingTop = 0;74 tgt.style.paddingBottom = 0;75 if(tgt.parentNode.tagName == "UL"){76 tgt.parentNode.style.height = "0px";77 tgt.parentNode.style.margin = "0";78 tgt.parentNode.style.padding = "0";79 tgt.parentNode.style.border = "none";80 }81 }82 var hasLink_flg;83 if(tgt.childNodes.length){84 for (var j = 0; j < tgt.childNodes.length; j++) {85 //クリック範囲の拡大86 if(tgt.childNodes[j].tagName == 'A'){87 tgt.setAttribute('onclick', 'location.href="' + tgt.childNodes[j].getAttribute('href') + '"');88 }89 //アコーディオンリストの操作イベント関数を追加90 else if(tgt.childNodes[j].tagName == 'UL'){91 //▶を表示し、リストオープン関数を追加92 var linkObj = document.createElement("a");93 linkObj.innerText = '+';94 $(tgt).children('span.category_header')95 .addClass('plus')96 .append(linkObj);97 j++;98 linkObj.parentNode.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')');99 100 //tgt.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')');101 break;102 }103 }104 }105 }106 107 1 /*------------------------------------------ 108 2 初期化 109 3 ------------------------------------------*/ 110 4 //level?クラスを持つノード全てを走査し初期化 111 function initCategoryList(){ 112 var lv = 0; 113 //level?クラスを持つノード全てに、クリックイベントを追加 114 while(document.getElementsByClassName("level" + (++lv)).length){ 115 for (var i = 0; i < document.getElementsByClassName("level" + lv).length; i++) { 116 setclickevent(document.getElementsByClassName("level" + lv)[i], lv, i); 5 $(function(){ 6 $("#categorytree li").each(function(){ 7 if ($(this).children("ul").length) { 8 //▶を表示し、リストオープンイベントを追加 9 var tgt = $(this).children('span.category_header'); 10 var linkObj = $("<a>"); 11 linkObj.text('+'); 12 tgt 13 .click(function(){ 14 $(this).siblings("ul").toggle('fast', function(){ 15 if ($(this).css('display') === 'none') { 16 tgt.children('a').text('+'); 17 } else { 18 tgt.children('a').text('ー'); 19 } 20 }); 21 }) 22 .addClass('plus') 23 .append(linkObj); 117 24 } 118 } 119 } 25 }); 26 });
Note: See TracChangeset
for help on using the changeset viewer.
