Aleksandrs Posted February 23, 2005 Report Share Posted February 23, 2005 Ir nepieciešams ar vienu klikšķi atvērt, attēlot vairākus tagus. Problēma ir tajā, ka ID visiem tagiem ir vienāds. To, ka JS atver tikai vienu tagu, standarti neatļauj savādāk, ir gan iespēja šķirot veramos laukus piem.: A1, A2 A - Attiecīgi ir vērtība norādītā pie klikšķināmās pogas. Kādi būtu varianti ar Javascript apiet šo problēmu? Link to comment Share on other sites More sharing options...
Venom Posted February 24, 2005 Report Share Posted February 24, 2005 Problēma ir tajā, ka ID visiem tagiem ir vienāds.ID NEDRĪKST BŪT VIENĀDS! Tu saproti, kas ir "unikāls"? Nesapratu ko nozīmē Ir nepieciešams ar vienu klikšķi atvērt, attēlot vairākus tagus. varbūt LOGUS? ķip. window.open('adrese','identifikators')? ja 'identifikators' iekš window.open vienāds, tad jā - atver tikai vienu logu. var lietot kaut ko līdzīgu window.open('adrese',Math.floor(Math.rand()*10000000)) Link to comment Share on other sites More sharing options...
Robis Posted February 24, 2005 Report Share Posted February 24, 2005 Es domaju ta: id jabut katram tagam savadakam. Kur notiek tie klikšķi? Link to comment Share on other sites More sharing options...
Aleksandrs Posted February 24, 2005 Author Report Share Posted February 24, 2005 Venom, paldies, tagad zināšu ID nozīmi. Bet NAME, tie arī ir unikāli? Piemēram: <a href="#" onclick="Show('A')">Atvērt visus A vārdus</a> <a href="#" onclick="Show('B')">Atvērt visus B vārdus</a> ... <div id="A1" style="display:none;">Aleksandrs</div> <div id="A2" style="display:none;">Andris</div> <div id="B1" style="display:none;">Boss</div> ... Ja, ID nevarbūt vienādi, tad vai pie norādītā Show A, kā var atvērt visus tagus, kuriem ID sakas ar A? Vai ir arī citi varianti, ko var saveidot ar JavaSciprt šajā gadijumā? Link to comment Share on other sites More sharing options...
Venom Posted February 24, 2005 Report Share Posted February 24, 2005 nē, name var sakrist, bet tikai radio elementiem, citādi pēdējais elements ar name=x aizvietos pirmo ar x tajā pašā formā. resp. jā, var sakrist dažādās formās, bet tajā pašā formā ar savu specifiku. + atsevišķa runa, ja name ir pašindeksējošs masīvs (name="mainīgais[]") Att. uz tavu piemēru, es taisītu ko līdzīgu: <script> actdiv=null; function show(elt) { if (!elt.id) return true; if (actdiv!=null) actdiv.style['display']='none'; actdiv=document.getElementById(elt.id+'div'); actdiv.style['display']='block'; return false; } </script> <style> .nd {display:none} a {cursor:hand} </style> <a id="A" onclick="show(this);">A</a> <a id="B" onclick="show(this);">B</a> <div id="Adiv" class="nd"> Aleksandrs, Anna ... </div> <div id="Bdiv" class="nd"> Baiba, Boriss ... </div> Link to comment Share on other sites More sharing options...
Aleksandrs Posted February 24, 2005 Author Report Share Posted February 24, 2005 Bet vai tomēr nevar, kaut kā saveidot, ka ar JavaScript var atvērt vairārākus tagus ar līdzīgus? Jo tavā piemērā ir jāpārkārto visi vārdi, kas nav JavaScript darbināmais, bet php, savukārt, katru reizi šķirot tos vārdus, pa burtiem varētu būt lieka minimālā slodze serverim. Link to comment Share on other sites More sharing options...
bubu Posted February 24, 2005 Report Share Posted February 24, 2005 (edited) Variants 1: <script> function Show(arr) { for (i=0; i<arr.length; i++) { if (el = document.getElementById(arr[i])) { el.style.display = "block"; } } } </script> <a href="#" onclick="Show(['A1','A2'])">Atvērt visus A vārdus</a> <a href="#" onclick="Show(['B1'])">Atvērt visus B vārdus</a> ... <div id="A1" style="display:none;">Aleksandrs</div> <div id="A2" style="display:none;">Andris</div> <div id="B1" style="display:none;">Boss</div> Variants 2: <script> function Show(name) { el = document.getElementsByName(name); for (i=0; i<el.length; i++) { el.item(i).style.display = "block"; } } </script> <a href="#" onclick="Show('A')">Atvērt visus A vārdus</a> <a href="#" onclick="Show('B')">Atvērt visus B vārdus</a> ... <div name="A" style="display:none;">Aleksandrs</div> <div name="A" style="display:none;">Andris</div> <div name="B" style="display:none;">Boss</div> ... Vislēnākais variants 3: <script> function Show(id) {' if (!(magic = document.getElementById("magic"))) return; el = magic.getElementsByTagName("DIV"); for (i=0; i<el.length; i++) { e = el.item(i); if (e.id.charAt(0) == id) e.style.display = "block"; } } </script> <a href="#" onclick="Show('A')">Atvērt visus A vārdus</a> <a href="#" onclick="Show('B')">Atvērt visus B vārdus</a> ... <div id="magic"> <div id="A1" style="display:none;">Aleksandrs</div> <div id="A2" style="display:none;">Andris</div> <div id="B1" style="display:none;">Boss</div> ... </div> Edited February 24, 2005 by bubu Link to comment Share on other sites More sharing options...
Venom Posted February 24, 2005 Report Share Posted February 24, 2005 vēl viens variants - "pingošana", ja zināms, ka visi 'A' elementi tiks saukti kā A1, A2, A3 utt., function show(startWith) { tmp=0; while(document.getElementById(startWith + ++tmp)) document.getElementById(startWith+tmp).style['display']='block'; } izsaucāms ar show('A') utt. Link to comment Share on other sites More sharing options...
Recommended Posts