⊗jsPmTrSB 449 of 505 menu

Start és stop gombok JavaScript időzítőhöz

Most készítsünk két gombot: az elsőre kattintva induljon el az időzítő, a másodikra kattintva pedig álljon meg. Itt már nem lesz minden olyan egyszerű, és lesz egy meglepetés. Annak érdekében, hogy megértsük ennek a meglepetésnek a lényegét, lépésről lépésre írom le a kód létrehozását.

Tehát készítünk két gombot:

<button id="start">start</button> <button id="stop">stop</button>

Ezekre a gombokra hivatkozást kapunk változókba:

let start = document.querySelector('#start'); let stop = document.querySelector('#stop');

Az első gombra kattintva indítsuk el az időzítőt, annak számát egy változóba mentve:

start.addEventListener('click', function() { let timerId = setInterval(function() { console.log('!') }, 1000); });

És most állítsuk le az időzítőt a második gomb megnyomásakor:

start.addEventListener('click', function() { let timerId = setInterval(function() { console.log('!') }, 1000); }); // Az időzítő leállítása: stop.addEventListener('click', function() { clearInterval(timerId); });

Azonban, ha a fenti kódot megpróbáljuk futtatni, meglepetés éri majd: az időzítő megállításának próbálatakor kiderül, hogy a timerId változó undefined! Miért történt ez? Mert az időzítő indításakor a timerId változónkat lokálissá tettük a start gombhoz kötött függvényen belül.

A probléma megoldásához tegyük a timerId változót globálissá - ebben az esetben elérhető lesz mind az időzítő indításának, mind a megállításának a függvényében:

let timerId; // tegyük a változót globálissá start.addEventListener('click', function() { timerId = setInterval(function() { console.log('!') }, 1000); }); stop.addEventListener('click', function() { clearInterval(timerId); });

Legyen adott egy változó, amelyben kezdetben a 100 szám található. Adott továbbá két gomb. Az első gomb megnyomására indítson el egy időzítőt, amely másodpercenként csökkenti a változó értékét 1-gyel, és az új értéket kiírja a konzolra. Amint a változó értéke eléri a nullát - állítsa le az időzítőt.

A második gomb megnyomására állítsa le az időzítőt. Állítsa le az időzítőt akkor is, ha a második gomb nincs megnyomva, de a változó értéke elérte a nullát.

Egy programozó írt kódot, amely a gomb megnyomására elindít egy időzítőt, amely kiírja a konzolra az aktuális időt:

<input type="submit" id="start" value="start"> <input type="submit" id="stop" value="stop"> let start = document.querySelector('#start'); let stop = document.querySelector('#stop'); start.addEventListener('click', function() { let timerId = setInterval(function() { let date = new Date; console.log(date.getMinutes() + ' ' + date.getSeconds()); }, 1000); }); stop.addEventListener('click', function() { clearInterval(timerId); });

A kód indítása után azonban kiderült, hogy a stop gomb nem működik. Javítsa ki a kód szerzőjének hibáját.

Egy másik programozó szintén kódot írt az előző feladat megoldására:

<input type="submit" id="start" value="start"> <input type="submit" id="stop" value="stop"> let start = document.querySelector('#start'); let stop = document.querySelector('#stop'); let timerId; start.addEventListener('click', function() { let timerId = setInterval(function() { let date = new Date; console.log(date.getMinutes() + ' ' + date.getSeconds()); }, 1000); }); stop.addEventListener('click', function() { clearInterval(timerId); });

A kód indítása után azonban ismét kiderült, hogy a stop gomb nem működik. Javítsa ki a kód szerzőjének hibáját.

Egy másik programozó szintén kódot írt az előző feladat megoldására:

<input type="submit" id="start" value="start"> <input type="submit" id="stop" value="stop"> let start = document.querySelector('start'); let stop = document.querySelector('stop'); let timerId; start.addEventListener('click', function() { setInterval(function() { let date = new Date; console.log(date.getMinutes() + ' ' + date.getSeconds()); }, 1000); }); stop.addEventListener('click', function() { clearInterval(timerId); });

A kód indítása után azonban ismét kiderült, hogy a stop gomb nem működik. Javítsa ki a kód szerzőjének hibáját.

Egy másik programozó szintén kódot írt az előző feladat megoldására:

<input type="submit" id="start" value="start"> <input type="submit" id="stop" value="stop"> let start = document.querySelector('start'); let stop = document.querySelector('stop'); let timerId; start.addEventListener('click', function() { let timerId = setInterval(function() { let date = new Date; console.log(date.getMinutes() + ' ' + date.getSeconds()); }, 1000); }); stop.addEventListener('click', function() { clearInterval(); });

A kód indítása után azonban ismét kiderült, hogy a stop gomb nem működik. Javítsa ki a kód szerzőjének hibáját.

Az elméleti részben bemutatott kódom nem veszi figyelembe, hogy a start gombra többször is kattinthatunk. A probléma helyesbítése érdekében a start gomb megnyomásakor leválaszthatjuk az eseményt erről a gombról, a stop gomb megnyomásakor pedig visszaköthetjük. Javítsa ki a problémát.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás