Autor | Zpráva | ||
---|---|---|---|
tulik Profil * |
#1 · Zasláno: 16. 6. 2013, 10:34:24 · Upravil/a: tulik
Dobrý den, chci se zeptat na pro vás určitě lehkou otázku. Dělám si funkci a chci aby stejný text se vymazal. Chci docílit aby první onclick text zapsal a druhý ho vymazal. Hledal jsem na internetu, ale nic nenašel. Poradí nějaká dobrá duše? Děkuju předem
<p onclick="add('text_1');">text_1</p> <p onclick="add('text_2');">text_2</p> Prozatím se to snažím vyřešit takhle: function add(text){ text = (text == 'bílá')?'none':'bílá'; document.getElementById("write").innerHTML += text; } |
||
honzaik Profil |
no moc tě nechápu, ale jestli chce místo none nic :D tak tam dej jen ""
ale ta tvoje funkce je uplně mimo :D proč tam je nějaká bílá? :D když pokaždý tam budeš akorát vpisovat "text_1" nebo "text_2" napiš přesně co bys chtěl :D |
||
tulik Profil * |
#3 · Zasláno: 16. 6. 2013, 13:15:31
Tohle je poslední verze mého "výtvoru". Proč? Jedná se mi o barvy.
function add(id,text){ if(id == 'white'){ bila = (text == 'bílá')?'<a onclick="add(\'white\',\'none\');">bílá</a>':''; } if(id == 'yellow'){ zluta = (text == 'žlutá')?'<a onclick="add(\'yellow\',\'none\');">žlutá</a>':''; } barvy = bila + zluta; document.getElementById("write").innerHTML = barvy; } |
||
Davex Profil |
#4 · Zasláno: 16. 6. 2013, 13:47:46
tulik:
„Proč?“ Protože vždy platí, že 'none' != 'bílá' 'none' != 'žlutá' |
||
tulik Profil * |
#5 · Zasláno: 16. 6. 2013, 13:54:45
Svojí tvorbu vzdávám. Neví někdo o nejakým funkci kde si užiatel může naklikat seznam barev a případně i odstranit zvolené?
|
||
Sir Tom Profil |
#6 · Zasláno: 16. 6. 2013, 14:09:55
tulik:
Také dobrý den, napiš nám, co bys přesně chtěl, aby funkce uměla a nejlépe to popiš i na nějakém příkladu. |
||
tulik Profil * |
#7 · Zasláno: 16. 6. 2013, 14:15:21 · Upravil/a: tulik
function add(id,text){ if(id == 'white'){ bar = (text == 'bílá')?'<a onclick="add(\'white\',\'none\');"><button class="white"> </button></a>':' '; } if(id == 'yellow'){ bar = (text == 'žlutá')?'<a onclick="add(\'yellow\',\'none\');"><button class="yellow"> </button></a>':' '; } if(id == 'fuchsia'){ bar = (text == 'purpur')?'<a onclick="add(\'fuchsia\',\'none\');"><button class="fuchsia"> </button></a>':' '; } document.getElementById("write").innerHTML += bar; } Poslední můj výtvor. Chci docílit toho, že kdyz kliknu třeba na tohle: <button class="white" onclick="add('white','bílá');"> </button> Tak se mi zobrazí barva. Potom třeba změnim názor a barvu budu chtít odebrat, tak když kliknu na přidanou barvu, tak se zase odebere. Barev je víc a každá by se měla po kliknutí na seznamu zobrazit a po odkliknutí by měla zase zmizet. Kliknu na modrou, červenou a zelenou, tak se mi zobrazi modrý, červený a zelený čtverec. Když kliknu na zelený co se přidal, tak se odebere pouze zelený. Js se učím a umím spíš jen základy a i ty jsou slabé a tahle funkce je dost náročná jak jsem v průběhu zjistil. nebo po kliknutí třeba na tlačítko by mohlo vyvolat všechny barvy a mazání podle kliknu na onou barvu. Nevím jestli tohle vůbec jde udělat přesmě podle mch představ. Já jsem zklamal, ale možná nějakej borec to dokázal i třeba se podělil na internetu. Googlil jsem dlouho a nic co by vystihovalo mou potřebu sem nenašel. |
||
juriad Profil |
Napsal jsem skript, který zobrazí malé čtverce, které se po kliknutí zvětší a jejich barva se přidá do hodnoty inputu; po dalším kliknutí se zmenší a barva se odebere z hodnoty inputu. Sleduj, co se objeví v URL po odeslání formuláře
<form> <input type="text" name="barvy" id="barvy"> <div id="nabidkaBarev" style="height: 200px;"></div> <input type="submit"> </form> <script> // TODO sem přidej seznam všech barev var barvy = {'red': 'červená', 'blue': 'modrá', 'green' : 'zelená'}; function pridejOdeber(event) { event = event || window.event; var ctverec = event.target ? event.target : event.srcElement; var barva = ctverec.id; var input = document.getElementById('barvy'); var pole = input.value.length == 0? [] : input.value.split(","); var index = pole.indexOf(barva); if(index >=0) { pole.splice(index, 1); input.value = pole.join(','); ctverec.style.width = '100px'; ctverec.style.height = '100px'; ctverec.innerHTML = "přidej " + barvy[barva]; } else { pole.push(barva); input.value = pole.join(','); ctverec.style.width = '200px'; ctverec.style.height = '200px'; ctverec.innerHTML = "odeber " + barvy[barva]; } } var input = document.getElementById('barvy'); input.value = ''; // následující řádek odkomentuj, aby uživatel neviděl input, ale jen nabídku barev // input.style.display = 'none'; var nabidka = document.getElementById('nabidkaBarev'); for(var barva in barvy) { var ctverec = document.createElement("div"); ctverec.id = barva; ctverec.innerHTML = "přidej " + barvy[barva]; ctverec.style.background = barva; ctverec.style.width = '100px'; ctverec.style.height = '100px'; ctverec.style.cssFloat = 'left'; ctverec.onclick = pridejOdeber; nabidka.appendChild(ctverec); } </script> živá ukázka: http://jsfiddle.net/CqJP3/ |
||
tulik Profil * |
#9 · Zasláno: 16. 6. 2013, 19:02:17
Děkuju. To je přesně ono.
|
||
juriad Profil |
#10 · Zasláno: 17. 6. 2013, 00:13:48
Nebo ještě lépe takto: http://jsfiddle.net/r6sFH/
Nepoužívá pro uložení výběru input type=text, ale checkboxíky. Funguje to navíc i lidem bez javascriptu. |
||
Časová prodleva: 11 let
|
0