Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Pudotusvalikko

Haraldinho [02.03.2014 14:52:43]

#

Miten toteuttaisitte yksinkertaisen pudotusvalikon, joka sulkee automaattisesti muut vastaavat pudotusvalikot? Siis sellaisen, jossa klikataan jotain nappia, että valikko aukeaa ja sulkeutuu. Olen jonkinlaista härveliä yrittänyt tehdä, mutta en ole keksinyt mitään kovin validia keinoa. Googlettamallakaan en ole löytänyt. Käyttökielenä mielellään JS jne.

reca [02.03.2014 15:10:08]

#

No laitappa koodia miten oot lähteny toteuttamaan ja mikä toteutuksessa mätttää...

Haraldinho [02.03.2014 15:49:04]

#

Sehän oli jotenkin tähän tapaan:

<html>
<head>
<script type="text/javascript">
var dis = false;
function toggle(button, toggle)
{

if (dis == false) {
	document.getElementById(toggle).style.display="none";
	document.getElementById(button).innerHTML="Show";
	dis = true;
} else if (dis == true) {
	document.getElementById(toggle).style.display="block";
	document.getElementById(button).innerHTML="Hide";
	dis = false;
}
}
</script>
</head>
<body>

<form>
<p id="button" onclick="toggle('button', 'menu')">Hide</p>
<div id="menu">
Hide me!
</div>

Ei varmaan mitenkään paras ratkaisu myöskään tuo, että viedään funktiolle parametreina nuo id:t. Myös tuohon asiaan saa ehdottaa parempaa ratkaisua.

Tosiaan pääongelma kuitenkin tulee silloin, kun lisätään useampi tuollainen "pudotusvalikko" toimimaan samalla funktiolla. Tärkeää on, että pudotusvalikoita voi olla samalla sivulla useita, mutta toimivat silti toisistaan riippumatta (paitsi että avonaiset pudotusvalikot sulkeutuvat uutta avatessa).

Metabolix [02.03.2014 15:58:23]

#

Laita valikoille sama luokka, jotta voit etsiä ne kerralla (getElementsByClassName) ja sulkea ne vaikka silmukassa ennen uuden valikon avausta. Älä käytä tilan muistamiseen erillistä muuttujaa vaan valikkoelementin luokkaa tai data-attribuutteja.

Haraldinho [02.03.2014 16:29:50]

#

Joo, tuli itsellänikin mieleeni tuo, että suljetaan ne ensin jonkin yhteisen luokan kautta ja avataan sitten kyseinen valikko sen omalla id:llä tms. Täytyypäs vielä tutustua tarkemmin noihin data -attribuutteihin...

EDIT: Viitsitkö laittaa jonkinlaista esimerkkiä ku en oikein ymmärrä miten saisin sen tilan tallennettua käyttäen valikkoelementin luokkaa :/

Vastaus

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

Tietoa sivustosta