Autor Zpráva
Alastor_Kopal
Profil
<body onkeydown="klavesa(event);" onKeyUp="uvolneni(event);">

<script type="text/javascript">

    function klavesa(event)
      {
        switch(event.keyCode) {
// další důležité definice kláves

case 32: odpocitej("5", "1"); break;

}}

 var cislo = 0;
 var jedeme = 0;
 var pristup = document.getElementById("precti");

function pricti() {
 cislo = cislo + 1;
 pristup.innerHTML = cislo;
 pristup.style.width = cislo+"px";
}

function odpocitej(sekundy, ruka) {
if(jedeme == 0){
 casovac1 = window.setInterval("pricti();", 500);
 jedeme = 1;
}}

function uvolneni (event){
if(event.KeyCode == 32){
clearTimeout(casovac1)
jedeme = 0;
cislo = 0;
}}
	</script>

<span id="precti" style="color: black; background: red; height: 20px; width: 10px;">nic</span>


Zkoušel jsem všechno, ale nechce se to rozjet. Ten script by správně měl při držení mezerníku (32) přičítat k hodnotě proměnné cislo a zapisovat to do spanu pod ním
_es
Profil
Alastor_Kopal:
Premenná pristup bude mať hodnotu undefined, pretože ten element vtedy ešte neexistuje.
Pridaj za ten <span id="precti"...:
<script>pristup = document.getElementById("precti");</script>
a riadok 16 zjednoduš na:
var pristup;
Premenná casovac1 nie je explicitne definovaná (cez var).
Časovač je lepšie definovať v tvare:window.setInterval(pricti, 500)
Alastor_Kopal
Profil
<body onkeydown="klavesa(event);" onKeyUp="uvolneni(event);">
<span id="precti" style="color: black; background: red; height: 20px; width: 10px;">nic</span>
<script type="text/javascript">

pristup = document.getElementById("precti");

    function klavesa(event)
      {
        switch(event.keyCode) {
// další důležité definice kláves

case 32: odpocitej("5", "1"); break;

}}

 var cislo = 0;
 var jedeme = 0;
 var pristup;

function pricti() {
 cislo = cislo + 1;
 pristup.innerHTML = cislo;
 pristup.style.width = cislo*10+"px";
}

function odpocitej(sekundy, ruka) {
if(jedeme == 0){

 var casovac1 = window.setInterval(pricti, 500);
 jedeme = 1;
}}

function uvolneni (event){
if(event.KeyCode == 32){
clearTimeout(casovac1)
jedeme = 0;
cislo = 0;
}}
	</script>

mám dvě výhrady
1. nemění to šířku
2. neresetuje se to na začátek když pustím klávesu
prostě jenom po zmáčknutí odpočítává
_es
Profil
Alastor_Kopal:
Premenná casovac1 musí byť definovaná mimo funkcií ako globálna (var casovac1;) a v tých funkciách už používaná bez var.
Radšej si niekde naštuduj základy JS, alebo si na to kúp/požičaj nejakú vhodnú knihu.
Alastor_Kopal
Profil
jo jo javascript mi moc nejde a přitom sem přečetl už pár knih :-(

<body onkeydown="klavesa(event);" onKeyUp="uvolneni(event);">
<span id="precti" style="color: black; background: red; height: 20px; width: 10px;">nic</span>
<script type="text/javascript">

pristup = document.getElementById("precti");

    function klavesa(event)
      {
        switch(event.keyCode) {
// další důležité definice kláves

case 32: odpocitej("5", "1"); break;

}}

 var cislo = 0;
 var jedeme = 0;
 var pristup;
 var casovac1;

function pricti() {
 cislo = cislo + 1;
 pristup.innerHTML = cislo;
 pristup.style.width = cislo*10+"px";
}

function odpocitej(sekundy, ruka) {
if(jedeme == 0){

 casovac1 = window.setInterval("pricti();", 500);
 jedeme = 1;
}}

function uvolneni(event){
if(event.KeyCode == 32){
clearTimeout(casovac1)
jedeme = 0;
cislo = 0;
 pristup.innerHTML = cislo;
}}
	</script>

nejde nejde
_es
Profil
Alastor_Kopal:
Časovač definovaný cez setInterval sa ruší cez window.clearInterval.
Alastor_Kopal
Profil
<body onkeydown="klavesa(event);" onKeyUp="keyWasPressed(event);">
<span id="precti" style="color: black; background: red; height: 20px; width: 10px;">nic</span>
<script type="text/javascript">

pristup = document.getElementById("precti");

    function klavesa(event)
      {
        switch(event.keyCode) {
// další důležité definice kláves

case 49: odpocitej("5", "1"); break;

}}

 var cislo = 0;
 var jedeme = 0;
 var pristup;
 var casovac1;

function pricti() {
 cislo = cislo + 1;
 pristup.innerHTML = cislo;
 pristup.style.width = cislo*10+"px";
}

function odpocitej(sekundy, ruka) {
if(jedeme == 0){

 casovac1 = window.setInterval("pricti();", 500);
 jedeme = 1;
}}

function keyWasPressed(evt){
if(evt.keyCode == 49){
window.clearInterval(casovac1);
jedeme = 0;
cislo = 0;
 pristup.innerHTML = cislo;
}}
	</script>

měl jsem ještě chybu v podmínce už jsem to opravil ale šířka pořád nenaskakuje (ale už se to přerušuje)
Alastor_Kopal
Profil
<body onkeydown="klavesa(event);" onKeyUp="keyWasPressed(event);">
<span id="precti" style="color: black; background: red; height: 20px; width: 10px;">n</span>
<script type="text/javascript">

 var cislo = 0;
 var jedeme = 0;
 var pristup = document.getElementById("precti");
 var casovac1;

    function klavesa(event)
      {
        switch(event.keyCode) {
// další důležité definice kláves

case 49: odpocitej("5", "1"); break;

}}

function pricti() {
 cislo = cislo + 1;
 pristup.innerHTML = cislo;
 pristup.style.width = cislo*10+"px";
}

function odpocitej(sekundy, ruka) {
if(jedeme == 0){

 casovac1 = window.setInterval("pricti();", 500);
 jedeme = 1;
}}

function keyWasPressed(evt){
if(evt.keyCode == 49){
window.clearInterval(casovac1);
jedeme = 0;
cislo = 0;
 pristup.innerHTML = cislo;
 pristup.style.width = 50+"px";
}}
	</script>

tohle ze mě vypadlo. Projel jsem to netbeansem a nestěžuje si ale pořád se to nerozšiřuje

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