Autor Zpráva
peter_r
Profil
je možné pomocou on click zmeniť farbu písma? je nejaký text a niekde inde text čierna a modrá, keď kliknem na text čierna tak sa farba určitého textu zmení na čiernu a ak na modrá tak na modrú

a nejdem zakladať novú tému, opýtam sa ešte rovno na druhý problém, niekde na stránke budem mať textový input, do ktorého keď niečo napíšem a stlačím enter tak sa tento text napíše na rovnakej stránke niekde inde veľkým písmom

ďakujem
Trejpa
Profil
peter_r:
Dokud se nemají zobrazené hodnoty někam ukládat pro zobrazení při příští návštěvě, je to jednoduché.
peter_r
Profil
Trejpa:
perfektné, ďakujem veľmi pekne

mám ešte jednu otázku, pomocou on click sa mi zobrazujú v nejakých tabuľkách hodnoty

<script>
function zobrazSkryj(idelementu){
el=document.getElementById(idelementu).style;
el.display=(el.display == 'block')?'none':'block';}
</script>

html
<h2 id="body5" class="okno">5</h2>
<h5 onclick="zobrazSkryj('body5')">b5</h5>

chcel by som aby pod tými hodnotami bol nejaký súčet a zrátaval ich dokopy ale až keď budú odkryté
Tomášeek
Profil
peter_r:
Zobrazit počet odkrytých? Možností je více, asi nejsnažší na pochopení bude tato.

Odkaz
peter_r
Profil
Tomášeek:
nemyslel som počet zobrazených ale súčet čísiel ktoré sú zobrazené
Tomášeek
Profil
peter_r:
Tos prve nenapsal.

Odkaz
Trejpa
Profil
Kdybys chtěl dát součty opravdu do tabulky, tak už nebude stačit skrývání samotného elementu. Bude nutno skrývat řádky tabulky, přičemž hodnoty budou v konkrétním sloupci (buňce).

Skrývání a počítání řádků tabulkyzdroj


Ještě ti doporučím, abys ve skrývajícím skriptu u proměnné display používal '' namísto 'block'. Tedy prázdnou hodnotu, výchozí pro daný element. Pak půjde skript použít nejen na bloky, ale i na řádkové elementy, obrázky a prvky tabulky.
peter_r
Profil
ďakujem obom, od Tomášeeka mi to funguje perfektne, ste machri, kdo umí ten umí ...


ešte sa mi tam vyskytol jeden problémik :) dá sa na niektorý onclick nastaviť aj nejaký zvuk (beep), čiže zároveň sa zobrazí text a ozve sa zvuk napr. beep.wmv
Trejpa
Profil
peter_r:
Stačí na webu najít nějaký příklad. Zkus ho tentokrát použít sám.
Keeehi
Profil
peter_r:
Technicky to samozřejmě možné je, ale zvuky na webu nikdy nikoho nezajímaly a ani to už není cool. Pokud to má mít nějakou funkční přidanou hodnotu, tak prosím. Pokud to je ale jen na okrasu, tak to tam raději nedávej.
peter_r
Profil
ešte raz vám ďakujem, možno som mal na začiatku povedať načo to je, samozrejme netvorím stránku, kde budú zvuky, robím ovládanie na firemnú akciu, kde bude vedomostná súťaž, ten zvuk by zaznel keby bola odpoveď zlá

vrátim sa ale k súčtu zobrazených bodov, prosím ešte (dúfam) o poslednú pomoc


<script>
function zobrazSkryj (idelementu) {
    var total = document.getElementById('total');
    var el = document.getElementById(idelementu).style;
    
    if (el.display == 'block') {
        el.display = 'none';
        total.innerHTML = parseInt(total.innerHTML) - 1;
    } else {
        el.display = 'block';
        total.innerHTML = parseInt(total.innerHTML) + 1;
    }
}
</script>

tento script zrátava zobrazené hodnoty, ale čo mám urobiť ak chcem aby spočítané hodnoty mi vynásobilo krát 2
ďakujem
lionel messi
Profil
total.innerHTML = (parseInt(total.innerHTML) - 1) * 2;
Trejpa
Profil
peter_r:
Místo + 1 dej * 2.

<p onclick=x2()>násob 2×
<p id=total>10
<script>
function x2(){
var total = document.getElementById('total');
total.innerHTML = parseInt(total.innerHTML) * 2;}
</script>
Tomášeek
Profil
peter_r:
parseInt i jednička jsou čísla. Je to jednoduchá matematika, asi tak 3. třída. Násobení, priorita, závorky.

Pro lepší představu si v duchu za parseInt(total.innerHTML) představ obyčejné X, není to žádné magické zaklínadlo.

(X - 1) * 2
(X + 1) * 2
peter_r
Profil
sory, dal som zlý kód

<script>
function zobrazSkryj2 (idelementu, body) {
    var total = document.getElementById('total');
    var el = document.getElementById(idelementu).style;
    
    if (el.display == 'block') {
        el.display = 'none';
        total.innerHTML = parseInt(total.innerHTML) - body;
    } else {
        el.display = 'block';
        total.innerHTML = parseInt(total.innerHTML) + body;
    }
}

proste mám tam viac hodnôť, ktoré sa po zobrazení spočítavajú do výsledku, napr. tri čísla 1, 3 a 5, výsledok mi spočítava, čo je 9 alebo potom chcem aby v inej tabuľke mi tento výsledok zdvojnásobilo, čiže 18


v javascripte som úplne mimo, viac sa orientujem na php a mysql


čiže niekde mi zobrazuje súčet

<h2 id="total">0</h2>

a tento potrebujem vynásobiť
Tomášeek
Profil
peter_r:
Přečti si odpovědi výše.

Jen malý tip na závěr, v JS se násobí úplně stejně jako v PHP. A stejně jako na základní škole.
peter_r
Profil
skúšal som to tak ale nefunguje to,

total.innerHTML = (parseInt(total.innerHTML) + body)*2;

prvé číslo ešte vynásobí ale keď zobrazím druhé tak je to už pomaly 10 násobok

ako som písal vyššie, súčet by som už nechal tak ako to je

ale niekde inde chcem tento výsledok zdvojnásobiť

prosím ešte toto a už dám pokoj
lionel messi
Profil
peter_r:
prvé číslo ešte vynásobí ale keď zobrazím druhé tak je to už pomaly 10 násobok

V tom prípade prosím o živú ukážku.
peter_r
Profil
ale ja to nemám nahrané nikde na serveri, ale len na compe, localhoste

mám ti dať celý kód?
lionel messi
Profil
peter_r:
ale ja to nemám nahrané nikde na serveri, ale len na compe, localhoste

Povídání o živých ukázkách » „Nevím, kam to nahrát.
peter_r
Profil
aha prepáč, o tomto som nemal ani tušenia


teraz je to už asi ok

Živá ukázka


samozrejme nepozerajte na kód, nemám čas sa hrať s css a div, preto som to jednoducho urobil cez tabuľky


ešte som asi zabudol návod, dole je taký ovládací panel, po kliknutí na body b1, b2 ... sa v tabuľke vyššie zobrazujú body a v Spolu sa sčítavajú, potom tam kde som teraz narýchlo nahodil Súčet x2 potrebujem mať výsledok spolu vynásobený dvomi
lionel messi
Profil
peter_r:

Ospravedlňujem sa za dlhšiu odmlku, niekedy treba ísť aj do postele a do práce. Inak tiež mám skôr prax v PHP a SQL, JS je pre mňa viac-menej iba doplnok.

V tomto prípade ti total.innerHTML = (parseInt(total.innerHTML) + body)*2; skutočne nepomôže, lebo v total.innerHTML je už násobený výsledok, ktorý už nechceme znovu násobiť. Ak násobíš všetky polia, stačilo by ti:

total.innerHTML = (parseInt(total.innerHTML) /2 + body)*2;
Tomášeek
Profil
peter_r:
Jedna možnost je ta, co navrhl lionel messi. Funguje, ale vidíš, ze je divná, Žáková neohrabana. Něco dělit dvěma, abych k tomu přidal dvojnásobek jiného.

Ve funkci, kde probíhá ten výpočet, pricitej/odecitej dvojnásobek požadavanych bodu. Je to lehká úprava mého kódu v #6, měl bys být schopny ji zvládnout i bez znalosti js.
peter_r
Profil
ďakujem vám obom

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0