Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: JavaScript Branch -valikko

Sivun loppuun

Tuplanolla [01.10.2005 23:03:05]

#

Olen saanut jonkinlaisen menun rakennettua sivulleni, mutta se ei oikein toimi (enää, rikoin sen vahingossa).
Sivu: http://www.saunalahti.fi/teekku/tnv/tnv-index.php

Menujen pitäisi toimia niin että + muuttuu muotoon - ja teksti tulee näkyviin ja toisinpäin.
JavaScriptin koodi on melko sotkuista, sekä tekotapa on valittu huonosti (branchin nimi (esimerkiksi Projects) vaihtuu vaikka pelkästään variantin (+/-) pitäisi).
Viitsisikö joku auttaa tämän kanssa, tarvitsisin melko pikaisesti toimivan sivun.

Tästä toisesta versiosta saattaa olla apua.
Replace funktiotakin on mahdollista käyttää (luulen), siitä kommentti.

function showBranch(branch)
{
	var objbranch = document.getElementById(branch).innerHTML;
	var text = objbranch.innerHTML;
	var length = text.length;
	var sclosed = "<div class='variant'>[+]</div>&nbsp;" + text.substring(4, (length - 4));
	var sopen = "<div class='variant'>[-]</div>&nbsp;" + text.substring(4, (length - 4));
	var objvariant = document.getElementById(branch + "-x");
	if(objbranch.style.display == "block")
	{
	objbranch.style.display = "none";
	objvariant.innerHTML = sClosed;
	}
	else
	{
	objbranch.style.display = "block";
	objvariant.innerHTML = sOpen;
	}
}
;objvariant.innerHTML = objvariant.innerHTML.replace('<div class="variant">[+]</div>', '<div class="variant">[-]</div>');


Alkuperäinen skripti - myös sivulla.

function showBranch(branch)
{
	var objBranch = document.getElementById(branch);
	var sClosed = "<div class='variant'>[+]</div>" + branch;
	var sOpen = "<div class='variant'>[-]</div>" + branch;
	var objVariant = document.getElementById(branch + "-x");
	if(objBranch.style.display == "block")
	{
	objBranch.style.display = "none";
	objVariant.innerHTML = sClosed;
	}
	else
	{
	objBranch.style.display = "block";
	objVariant.innerHTML = sOpen;
	}
}

(Rumasti showBranch, puoliksi uppercase)

Div rakenentta voi tietenkin hieman vaihtaa HTML:ssä.

Olga [02.10.2005 14:48:38]

#

Sen kummemmin koodia katsomatta annan vinkin, että ainakin Firefoxin mukana defaulttina tuleva JavaScript-konsoli on ystäväsi. Sieltä vain virheitä etsimään + korjaamaan sitä kautta :)

ville-v [02.10.2005 16:28:25]

#

JavaScript-konsoli kirjoitti:

Virhe: uncaught exception: Ei lupaa kutsua metodia Location.toString
...
Virhe: dialog has no properties

viznut [02.10.2005 17:17:49]

#

Jos haluat toimivan sivun, niin miksi yleensä edes rupesit kasaamaan jotain valikoita Javascriptillä? Normaalit html-linkit on helppo tehdä, toimivat kaikissa selaimissa eikä niitä saa yleensä edes bugaamaan vahingossa.

Tuplanolla [02.10.2005 18:28:03]

#

viznut kirjoitti:

Jos haluat toimivan sivun, niin miksi yleensä edes rupesit kasaamaan jotain valikoita Javascriptillä? Normaalit html-linkit on helppo tehdä, toimivat kaikissa selaimissa eikä niitä saa yleensä edes bugaamaan vahingossa.

Kerroppa sitten miten rakentaisit tuonlaisen data-puun (tai jotakin).
Niin, Firefoxin JS konsoli valittaa kommenttirivin epäpätevyydestä.

Ja joku voisi myös kommentoida jotakin mistä on oikeasti apua.

Tuplanolla [02.10.2005 20:39:10]

#

Tulkoon nyt tuplapostaus.

Joku voisi myös kertoa miten tämä tehdään PHP:llä (paljon parempi vaihtoehto).
En osaa PHP:tä paljon yhtään, pelkästään koodin muokkailua ja säätämistä.
Voin kuitenkin opetella jos joku antaa kunnolla pohjaa.

Tuplanolla [04.10.2005 16:10:14]

#

Ei se noin vaikeaa ole.
Jos kaikki ovat kerran niin epäpäteviä täällä niin miksi kukaan vaivautuu kysymään mitään?
Näyttäisi että kukaan ei vaan jaksa välittää "jonkun toisen ongelmista", ja minusta tuollainen asenne ei kuulu tänne.

hunajavohveli [04.10.2005 16:15:14]

#

Tuplanolla kirjoitti:

Joku voisi myös kertoa miten tämä tehdään PHP:llä (paljon parempi vaihtoehto).

Ei PHP:llä voi muuta tehdä kuin tulostaa sitä HTML- tai JavaScript-koodia, ja minusta ainakin on paljon helpompaa kirjoittaa se koodi ennemmin käsin.

Metabolix [04.10.2005 16:42:41]

#

Auttaisiko, jos ottaisit HTML-lähdekoodista pois kommenttitagit tuon skriptin liittämisen ympäriltä? :D

Hyvin tuo ainakin minulla toimii, siis ihan tuo jälkimmäinen skripti. Pitää vain laittaa sivun onload-tapahtumaan se, että kaikki piilotetaan, että ovat näkyvillä, jos joku skriptitön niitä selailee.

Tuplanolla [04.10.2005 17:22:24]

#

Metabolix kirjoitti:

Auttaisiko, jos ottaisit HTML-lähdekoodista pois kommenttitagit tuon skriptin liittämisen ympäriltä? :D

Hyvin tuo ainakin minulla toimii, siis ihan tuo jälkimmäinen skripti. Pitää vain laittaa sivun onload-tapahtumaan se, että kaikki piilotetaan, että ovat näkyvillä, jos joku skriptitön niitä selailee.

Kommentit on väliaikaisia ettei errormessageta.
Skripti ei ole se mitä hain koska se ei toimi, etsin tällä hetkellä apua ulkomaalaiselta sivustolta koska siellä on keskimäärin nerompaa porukkaa.

Metabolix [04.10.2005 21:05:28]

#

Eipäs nyt haukuta, tai ei kohta heru apua ollenkaan.

Auttaa myös, jos muutat funktion nimen samaksi sekä kutsussa että itse funktiossa. Nyt niissä on yhden kirjaimen ero (B,b).

Äläkä väitä, ettei toimi, tässä se on ihan omien silmieni edessä.

Tuplanolla [04.10.2005 22:15:02]

#

Metabolix kirjoitti:

Eipäs nyt haukuta, tai ei kohta heru apua ollenkaan.

En niin, ilmoitusluontoinen sanoma.

Metabolix kirjoitti:

Auttaa myös, jos muutat funktion nimen samaksi sekä kutsussa että itse funktiossa. Nyt niissä on yhden kirjaimen ero (B,b).

Aivan, mutta haen tällä hetkellä PHP vaihtoehtoa.

Metabolix kirjoitti:

Äläkä väitä, ettei toimi, tässä se on ihan omien silmieni edessä.

Minulla on sitten jotakin söhläystä koodissa, katson myöhemmin jossen löydä PHP tutoriaaleja tai apuja.

Metabolix [04.10.2005 23:26:10]

#

PHP:llä tehden koko sivu pitää luonnollisesti ladata aina uudestaan. Linkkeihin osoitteeksi "index.php?sivu=(linkin_sivu)", ja sitten skriptillä generoidaan oikea sivu. Sitten, jos pitää pystyä pitämään monta haaraa kerralla auki, niin joko tuota paljon mutkikkaammaksi tai vaihtoehtona keksit käyttöön ja sinne tieto auki olevista haaroista.

Olga [05.10.2005 09:25:33]

#

Tuollaisella asenteella tuskin kannattaa tulla tänne kukkoilemaan. Hyviä vastauksia on tullut jo iso liuta, ja JavaScript-ongelmat todellakin ratkeavat sen JS-konsolin avulla. Silmät on todennäköisesti herralla päässä, sen kuin vain lukee.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta