⊗jsPmTrSB 449 of 505 menu

JavaScript'de timer başlatmak we durdurmak üçin düwmeler

Indi iki sany düwme ýasalyň: birinjisine basylanyňda timer başlasyn, ikinjisine basylanyňda bolsa dursun. Bu ýerde hemişe bolşy ýaly aňsat bolmaz we bizi gözlemekde çetlik bar. Bu çetligiň esasy nähili dugunydygyny düşünmek üçin, kody döretmegi ädimler boýunça düşündirerin.

Şonuň üçin, iki sany düwmeçek ýasalyň:

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

Bu düwmeler üçin üýtgeýjilere salgylary alyň:

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

Birinji düwmä basylanyňda, onuň belgisini üýtgeýjide ýazyp, timer-i başlalyň:

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

Indi bolsa ikinji düwmä basylanyňda timer-i duruzalyň:

start.addEventListener('click', function() { let timerId = setInterval(function() { console.log('!') }, 1000); }); // Timer-i duruzýarys: stop.addEventListener('click', function() { clearInterval(timerId); });

Şeýle-de bolsa, ýokarda görkezilen kody işletmäge synanyşanyňyzdan soň, bizi täsir garaşýar: timer-i duruzmaga synanyşanyňyzdan soň, timerId üýtgeýjisi undefined deň ekenligi görünýär! Näme üçin şeýle boldy? Sebäbi timer-i başlanda biz timerId üýtgeýjisini start düwmesine baglanan funksiýanyň içinde ýerli etdik.

Bu meseleni çözmek üçin timerId üýtgeýjisini global edeliň - bu ýagdaýda ol hem timer-i başlatmak üçin funksiýada, hem-de duruzmak funksiýasynda elýeterli bolar:

let timerId; // üýtgeýjini global edýäris start.addEventListener('click', function() { timerId = setInterval(function() { console.log('!') }, 1000); }); stop.addEventListener('click', function() { clearInterval(timerId); });

Başlangyçda 100 sanysyny saklaýan bir üýtgeýji berlen bolsun. Şeýle hem iki sany düwme bar. Birinji düwmä basylanyňda timer-i başlaň, şol timer her sekuntda üýtgeýjiniň bahasyny 1-e azaltmaly we täze bahasyny konsolde görkezmeli. Üýtgeýjiniň bahasy nola ýetende - timer-i duruzuň.

Ikinji düwmä basylanyňda timer-i duruzuň. Şeýle hem, ikinji düwme basylmadyk bolsa-da, üýtgeýjiniň bahasy nola ýetende timer-i duruzuň.

Belli bir programmist düwmä basylanyňda häzirki wagtlyk döwri konsolde görkezýän timer-i başlaýan kody ýazdy:

<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); });

Kod işledilenden soň, şonda-da, duruzmak düwmesiniň işlemeýändigi bellendi. Kod ýazan şahsynyň ýalňyşlygyny düzediň.

Ýene bir programmist öňki meseleni çözmek üçin kod ýazdy:

<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); });

Kod işledilenden soň, ýene-de, duruzmak düwmesiniň işlemeýändigi bellendi. Kod ýazan şahsynyň ýalňyşlygyny düzediň.

Ýene bir programmist öňki meseleni çözmek üçin kod ýazdy:

<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); });

Kod işledilenden soň, ýene-de, duruzmak düwmesiniň işlemeýändigi bellendi. Kod ýazan şahsynyň ýalňyşlygyny düzediň.

Ýene bir programmist öňki meseleni çözmek üçin kod ýazdy:

<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(); });

Kod işledilenden soň, ýene-de, duruzmak düwmesiniň işlemeýändigi bellendi. Kod ýazan şahsynyň ýalňyşlygyny düzediň.

Teoretiki bölümde men tarapyndan görkezilen kod "start" düwmesine birnäçe gezek basyp bolýandygyny hasaba almaz. Bu meseleni düzetmek üçin "start" düwmesine basylanyňda, bu düwmä wakany çözüp aýyrmaly we "stop" düwmesine basylanyňda - ýene birikdirmeli bolýar. Bu meseleni düzediň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et