Как изменить класс на текущие ячейки в html таблицах - PullRequest
2 голосов
/ 05 марта 2020

Когда я пытался изменить класс с зависанием, я вижу изменение класса с 1 на hovering cells

Но я хотел бы изменить класс с 1 на currently hovered cells

если мышь переместится 1 на 10 на 2, то currently hovered cells = 2, следовательно, будут изменены только 1 и 2.

Но теперь в таком случае, класс от 1 до 10 изменен.

Есть ли способ реализовать это?

Спасибо

$("td").hover(function() {
    const id = Number($(this).attr('id'));
    
    for(var j = 1;j <= id; j++){
      $("#"+j).addClass("aqua");
    }
  });
.aqua{
  background-color: aqua;
}


td {
  padding: 10px;
  transition-duration: 0.4s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
  <td id="1">1</td>
  <td id="2">2</td>
  <td id="3">3</td>
  <td id="4">4</td>
   </tr>
 <tr>
  <td id="5">5</td>
  <td id="6">6</td>
  <td id="7">7</td>
  <td id="8">8</td>
    </tr>
  <tr>
  <td id="9">9</td>
  <td id="10">10</td>
  <td id="11">11</td>
  <td id="12">12</td>
  </tr>
</table>

1 Ответ

2 голосов
/ 05 марта 2020

Сначала нужно удалить классы. Затем добавьте еще раз.

$("td").hover(function() {
    const id = Number($(this).attr('id'));
    $("table td").removeClass("aqua");
    for(var j = 1;j <= id; j++){
      $("#"+j).addClass("aqua");
    }
  });
.aqua{
  background-color: aqua;
}


td {
  padding: 10px;
  transition-duration: 0.4s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
  <td id="1">1</td>
  <td id="2">2</td>
  <td id="3">3</td>
  <td id="4">4</td>
   </tr>
 <tr>
  <td id="5">5</td>
  <td id="6">6</td>
  <td id="7">7</td>
  <td id="8">8</td>
    </tr>
  <tr>
  <td id="9">9</td>
  <td id="10">10</td>
  <td id="11">11</td>
  <td id="12">12</td>
  </tr>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...