Kezdőoldal » Számítástechnika » Weblapkészítés » Az lenne a terv, hogy az x-re...

Az lenne a terv, hogy az x-re kattintva az első lista utolsó sora megjelenjen, ami addig nem volt látható, de a listajel nem jelenik meg, miért?

Figyelt kérdés

<html>


<head>


<title>lista próba</title>


<style type="text/css">


span {float:right; cursor:pointer;}

li#c {display:none;}


</style>


<script type="text/javascript" language="JavaScript">


function f()

{

document.getElementById('c').style.display = 'inline';

}


</script>


</head>


<body>


<ul>

<li>A</li>

<li>B</li>

<li>C <span onClick="f()">x</span></li>

<li id="c">D</li>

</ul>


<ul>

<li>A</li>

<li>B</li>

<li>C</li>

</ul>


</body>


</html>



2013. febr. 13. 23:28
 1/7 anonim ***** válasza:
Érdekes, megpróbáltam "máshogy összerakni", de nem jött össze, azért kíváncsi leszek a megoldásra.
2013. febr. 14. 00:22
Hasznos számodra ez a válasz?
 2/7 Drone007 ***** válasza:

Azért nem működik úgy ahogy szeretnéd, mert eredetileg nem inline a display típusa a <li> tag-nek, hanem list-item, tehát erre állítsd vissza!


document.getElementById('c').style.display = 'list-item';

2013. febr. 14. 00:46
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
Köszönöm, és még egy olyan kérdésem lenne, ha nem egy utolsó sor van, hanem sok és ezokat ne id-val hanem egy közös class-névvel jelölöm meg, akkor hogyan lehetne őket egyszerre kiválasztani és a display-t átállítani js-el?
2013. febr. 14. 11:20
 4/7 Drone007 ***** válasza:

A legjobb megoldás, ha az elrejtendő li elemeknek adsz egy olyan class-t, amiben meg van adva a display: none érték. Az x-re kattintva, elveszed ezt a class-t azoktól, amelyeknél ez ott van, és így az alap érték érvényesül, vagyis ismét list-item lesz mind.

Egyszerűbb, ha használod a jquery libraryt. Azzal könnyebb kiválasztani dom objektumokat.

[link]


Pl jqueryvel:

css:

.hidden {display: none;}


html:

<ul>

<li>A</li>

<li>B</li>

<li>C <span onClick="f()">x</span></li>

<li class="hidden">D</li>

<li class="hidden">E</li>

<li class="hidden">F</li>

<li class="hidden">G</li>

<li class="hidden">H</li>

</ul>


js:

function f() {

$("ul.hidden").removeClass("hidden");

}

2013. febr. 14. 15:58
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

Nem szeretnék külső könyvtárakat használni.

nagyon bonyolult anélkül?

2013. febr. 14. 16:53
 6/7 Drone007 ***** válasza:

Egyáltalán nem, a jquery libraryt linkelhet a google apijából, vagy saját tárhelyedről is letöltés után:

<script type="text/javascript" src=" [link]

vagy

<script type="text/javascript" src="jquery.min.js"></script>

2013. febr. 14. 17:02
Hasznos számodra ez a válasz?
 7/7 Drone007 ***** válasza:
Ja hogy az removeClass? Hát egy kicsit az, végig kell járnod egy ciklussal a li elemeket, és ahol létezik a hidden class (document.getElementsByClass("hidden") vagy document.getElementsByTagName("li") ezek tömböt adnak vissza!), és ott módosítani a class-on.
2013. febr. 14. 17:07
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!