| 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: 12 let
|
|||
0