Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Javascript problemėlė
Parašė Creatium· 2009 Gru. 4 20:12:12
#1
Sveiki. Visų pirma noriu paprašyti, kad rašytumėte tik tie, kurie tikrai žinote.
Štai mano bėda: turiu js kodą, kuris padaro meniu-medį. Tai meniu, turintis kategorijas ir sub-kategorijas ir t.t. Meniu pvz.:
>Mašinos
-->Volvo
-->BMW
---->1992
---->1993
Ir kuomet tarkim paspaudžiu ant nuorodos 1992, man atidaro puslapį apie 92 m. BMW mašinas. Kuomet aš atsidariau puslapį 1992, tas meniu turi išlikti atsidaręs iki tos nuorodos (1992). Jeigu spaudžiu ant Volvo - meniu po perkrovimo lieka atsidaręs tik iki Volvo. Bėda tame, kad kai atidarau psl. 1992 arba Volvo, meniu užsidaro iki Mašinos, nors, kaip sakiau, turėtų likti atsidaręs iki tam tikros nuorodos. Žemiau pateikiu meniu kodą:
var activeMenuItem = new Array();
function isUlInArray(inputObj,ulObj){
while(inputObj && inputObj.id!='dhtmlgoodies_listMenu'){
if(inputObj==ulObj)return true;
inputObj = inputObj.parentNode;
}
return false;
}
function showHideSub(e,inputObj)
{
if(!inputObj)inputObj=this;
var parentObj = inputObj.parentNode;
var ul = parentObj.getElementsByTagName('UL')[0];
if(activeMenuItem.length>0){
for(var no=0;no<activeMenuItem.length;no++){
if(!isUlInArray(ul,activeMenuItem[0]) && !isUlInArray(activeMenuItem[0],ul)){
activeMenuItem[no].style.display='none';
activeMenuItem.splice(no,1);
no--;
}
}
}
if(ul.offsetHeight == 0){
ul.style.display='block';
activeMenuItem.push(ul);
}else{
ul.style.display='none';
}
}
function showHidePath(inputObj)
{
var startTag = inputObj;
showHideSub(false,inputObj);
inputObj = inputObj.parentNode;
while(inputObj){
inputObj = inputObj.parentNode;
if(inputObj.tagName=='LI')showHideSub(false,inputObj.getElementsByTagName('A')[0]);
if(inputObj.id=='dhtmlgoodies_listMenu')inputObj=false;
}
}
function initMenu()
{
var obj = document.getElementById('dhtmlgoodies_listMenu');
var linkCounter=0;
var aTags = obj.getElementsByTagName('A');
var activeMenuItem = true;
var activeMenuLink = true;
var thisLocationArray = location.href.split(/\//);
var fileNameThis = thisLocationArray[thisLocationArray.length-1];
if(fileNameThis.indexOf('?')>0)fileNameThis = fileNameThis.substr(0,fileNameThis.indexOf('?'));
if(fileNameThis.indexOf('#')>0)fileNameThis = fileNameThis.substr(0,fileNameThis.indexOf('#'));
for(var no=0;no<aTags.length;no++){
var parent = aTags[no].parentNode;
var subs = parent.getElementsByTagName('UL');
if(subs.length>0){
aTags[no].onclick = showHideSub;
linkCounter++;
aTags[no].id = 'aLink' + linkCounter;
}
if(aTags[no].href.indexOf(fileNameThis)>=0 && aTags[no].href.charAt(aTags[no].href.length-1)!='#'){
if(aTags[no].parentNode.parentNode && aTags[no].parentNode.parentNode.id!='dhtmlgoodies_listMenu'){
var parentObj = aTags[no].parentNode.parentNode.parentNode;
var a = parentObj.getElementsByTagName('A')[0];
if(a.id && !activeMenuLink){
activeMenuLink = aTags[no];
activeMenuItem = a.id;
}
}
}
}
if(activeMenuLink){
activeMenuLink.className='activeMenuLink';
}
if(activeMenuItem){
if(document.getElementById(activeMenuItem))showHidePath(document.getElementById(activeMenuItem));
}
}
window.onload = initMenu;
Žinau, kad nuo funkcijos function initMenu() prasideda klaida, kuomet arba nepatikrina psl. adreso, ar dar kas. Kas galite - parašykite klaidos ištaisymą. Ačiū
Redagavo Creatium· 2009 Gru. 4 20:12:40
Parašė Creatium· 2009 Gru. 4 23:12:10
#2
BUMP! Kylam į viršų.
Parašė Samp_Tevas· 2009 Gru. 5 10:12:48
#3
paziurek mano meniu,
www.ikaire.lt ar toks tinka? tuomet galiu atsiusti rar failiuka
Parašė Creatium· 2009 Gru. 5 11:12:23
#4
Na, gerai būtų, jeigu galima būtų vienu metu atidaryti tik 1 kategoriją. Tavo meniu dabar galima atidaryti nors ir visas (kitaip tariant, galima išskleisti visą meniu, o man to nereikia). Šiaip, jeigu nieks nepadės su šituo mano kodu, tai tada aš tau parašysiu :)
Parašė Samp_Tevas· 2009 Gru. 5 11:12:31
#5
http://www.destroydrop.com/javas...
Gali cia paziureti, ir parsisiusti, daug meniu isbandziau, bet sitas patiko labiausiai, tik pakoreagavau pav., na ir aisku reikia moketi ideti, nes vien tik idejus i panele neveiks, reikia koreaguoti dar keliata failu.
1) subheader imesti dali skripto.
2) o kitus failiukus i koki sukurta folderi, tik linkus nurodyti teisingai, nes neveiks.
3) linkai turetu buti su
http:// nes forume paspaudus rodys klaida.
Parašė Creatium· 2009 Gru. 5 11:12:41
#6
klaustukas parašė:
http://www.destroydrop.com/javas...
Gali cia paziureti, ir parsisiusti, daug meniu isbandziau, bet sitas patiko labiausiai, tik pakoreagavau pav., na ir aisku reikia moketi ideti, nes vien tik idejus i panele neveiks, reikia koreaguoti dar keliata failu.
1) subheader imesti dali skripto.
2) o kitus failiukus i koki sukurta folderi, tik linkus nurodyti teisingai, nes neveiks.
3) linkai turetu buti su
http:// nes forume paspaudus rodys klaida.
Na, pas mane ne fusionas. Įdėti moku. Čia arba skripto klaida, arba pikstasi skriptas su naudojamu varikliu.
Parašė Samp_Tevas· 2009 Gru. 5 12:12:37
#7
<script type='text/javascript'> gal si koda reiketu ideti tarp siu gairiu</script>
O seip, kad isbandyti turetum duoti ir pati meniu. ?|
Parašė Creatium· 2009 Gru. 5 12:12:53
#8
Berods be klaidų apkarpiau :D
<ul id='dhtmlgoodies_listMenu'>
<li><a href="">Mašinos</a></li>
<li><a>BMW</a>
<ul>
<li><a>1992</a>
<ul>
<li><a href="link">menu</a></li>
<li><a href="link">menu</a></li>
</ul>
</li>
<li><a href="link">1992</a></li>
</ul>
</ul>
Parašė Samp_Tevas· 2009 Gru. 5 12:12:55
#9
fusione, tai kabutes is " pakeiciu ' ir tuomet klaidu nemeta. bet sis kodas neveikia kazkodel.
Man tokia problema irgi buvo, kazkur turejau, panasu meniu, bet tai radau dabartini, tai ano atsisakiau, nes pervertus psl jis uzsidarydavo.
Redagavo Samp_Tevas· 2009 Gru. 5 12:12:48
Parašė Creatium· 2009 Gru. 5 12:12:44
#10
Tai ką tu čia davei? Aš sakau, kad visų pirma naudoju ne fusiona, antra, aš moku įsidėti kodą ir man jisai pratiškai puikiai veikia, išskyrus tą funkciją, kuri nustato psl. adresą ir tuomet atidaro meniu.
Parašė Creatium· 2009 Gru. 5 15:12:04
#11
Aš sakau, kad visų pirma naudoju ne fusiona, antra, aš moku įsidėti kodą ir man jisai pratiškai puikiai veikia, išskyrus tą funkciją, kuri nustato psl. adresą ir tuomet atidaro meniu.
Parašė Creatium· 2009 Gru. 5 17:12:58
#12
Aš sakau, kad visų pirma naudoju ne fusiona, antra, aš moku įsidėti kodą ir man jisai pratiškai puikiai veikia, išskyrus tą funkciją, kuri nustato psl. adresą ir tuomet atidaro meniu.
Parašė Creatium· 2009 Gru. 5 18:12:30
#13
Aš sakau, kad visų pirma naudoju ne fusiona, antra, aš moku įsidėti kodą ir man jisai pratiškai puikiai veikia, išskyrus tą funkciją, kuri nustato psl. adresą ir tuomet atidaro meniu.
Parašė Creatium· 2009 Gru. 5 19:12:33
#14
Aš sakau, kad visų pirma naudoju ne fusiona, antra, aš moku įsidėti kodą ir man jisai pratiškai puikiai veikia, išskyrus tą funkciją, kuri nustato psl. adresą ir tuomet atidaro meniu.