Bultas mēneša maiņai kalendārā JavaScript

Tagad zem kalendāra izveidosim bultas mēneša maiņai. Veiksim izmaiņas HTML kodā:

html<div id="parent">
  <div id="calendar">
    <div class="info">Jan 2020</div>
    <table>
      <thead>
        <tr>
          <th>pn</th>
          <th>ot</th>
          <th>tr</th>
          <th>ce</th>
          <th>pk</th>
          <th>se</th>
          <th>sv</th>
        </tr>
      </thead>
      <tbody class="body"></tbody>
    </table>
    <div class="nav">
      <a href="#" class="prev">←</a>
      <a href="#" class="next">→</a>
    </div>
  </div>
</div>

Veiksim izmaiņas CSS kodā:

css#parent {
  text-align: center;
}
#calendar {
  display: inline-block;
}
#calendar td, #calendar th {
  padding: 10px;
  border: 1px solid black;
  text-align: center;
}

#calendar .nav, #calendar .info {
  text-align: center;
}
#calendar a {
  color: blue;
  font-size: 25px;
  text-decoration: none;
}
#calendar a:hover {
  color: red;
}

#calendar .active {
  color: red;
}

Iegūsim saites uz bultām mainīgajos:

javascriptlet prev = calendar.querySelector('.prev');
let next = calendar.querySelector('.next');

Diskusija

Tagad apspriedīsim, kā atrisināt uzdevumu. Patiesībā mūsu kalendāra kods ir uzrakstīts labi paplašināms: mums ir funkcija draw, kas zīmē kalendāru norādītajam mēnesim. Tādējādi, noklikšķinot uz bultas, mēs varam pārzīmēt kalendāru ar citu mēneša numuru (un iespējams gadu).

Šeit ir piemērs, ko mēs varam izdarīt, klikšķinot uz nākamā mēneša bultas:

javascriptnext.addEventListener('click', function() {
  draw(body, getNextYear(year, month), getNextMonth(month));
});

Kā jūs redzat, šeit tiek izmantotas funkcijas getNextYear un getNextMonth. Parunāsim par to, kas tām jādara.

Kā norāda nosaukums, funkcija getNextYear iegūst nākamo gadu. Šeit domāts, ka, ja šobrīd ir decembris, tad, pārslēdzoties uz nākamo mēnesi, gadam jāpalielinās par 1. Ja šobrīd nav decembris, tad funkcijai vienkārši jāatgriež pašreizējais gads.

Funkcijai getNextMonth jāiegūst nākamais mēnesis. Tā visiem mēnešiem, izņemot decembri, mēneša numuram pievienos viens. Bet decembrim nākamais mēnesis būs janvāris ar numuru 0.

Līdzīgas darbības jāveic, noklikšķinot uz iepriekšējā mēneša pogas:

javascriptprev.addEventListener('click', function() {
  draw(body, getPrevYear(year, month), getPrevMonth(month));
});
Задание 1

Realizējiet mēneša maiņas pogu darbību.

Задание 2

Iestatiet, lai informācija virs kalendāra atbilstu attēlotajam mēnesim un gadam.