Добавление счетчика - PullRequest
       1

Добавление счетчика

0 голосов
/ 18 февраля 2020

Я пытаюсь добавить к этому счетчик, поэтому при нажатии на число должно отображаться «Вы выбрали 1 из 5», то есть человек должен выбрать 5 номеров. Но если щелкнуть по тому же номеру, его следует отменить, а затем go вернуться к «Вы выбрали 0 из 5». Таким образом, вы можете щелкнуть 1,5,7, но на экране должно появиться «Вы выбрали 3 из 5»

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Gaarith</title>
      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
      <style>
         #feedback {
         font-size: 1.4em;
         }

         #selectable .ui-selecting {
           background: #FECA40;
         }

         #selectable .ui-selected {
           background: #F39814;
           color: white;
         }

         #selectable {
          list-style-type: none;
           margin: 0;
           padding: 0;
           width: 450px;
         }

         #selectable li {
         margin: 10px;
         padding: 1px;
         float: left;
         width: 100px;
         height: 80px;
         font-size: 4em;
         text-align: center;
         }

         .wrapper {
           display: flex;
           margin: auto;
           justify-content: center;
           align-items: center;
         }
      </style>
   </head>
   <body>
      <div class="wrapper">
         <div>
            <p id="feedback">
               <span>You've selected:</span> <span id="select-result">none</span>.
            </p>
            <ol id="selectable">
               <li class="ui-widget-content" text="car">1</li>
               <li class="ui-widget-content" text="truck">2</li>
               <li class="ui-widget-content" text="physics">3</li>
               <li class="ui-widget-content" text="maths">4</li>
               <li class="ui-widget-content" text="home automation">5</li>
               <li class="ui-widget-content" text="car6">6</li>
               <li class="ui-widget-content" text="car7">7</li>
               <li class="ui-widget-content" text="car8">8</li>
               <li class="ui-widget-content" text="car9">9</li>
               <li class="ui-widget-content" text="car10">10</li>
               <li class="ui-widget-content" text="car11">11</li>
               <li class="ui-widget-content" text="car12">12</li>
            </ol>
         </div>
      </div>
      <script>
         // this makes each box clickable and adds it to an array the title.
         let liSelected = [];
$("document").ready(function() {
    $(".ui-widget-content").on("click", function() {
        if($(this).hasClass('ui-selecting')){
            $(this).removeClass('ui-selecting');
            removeItem(liSelected, $(this).attr('text'));
        }else{
            $(this).addClass('ui-selecting');
            liSelected.push($(this).attr('text'))
        }
        $("#select-result").text(liSelected.length === 0 ? "none" : liSelected.join(", "));
    });
//   this checks if the existing title is in the array and then removes it
    function removeItem(array, item){
        for(var i in array){
            if(array[i]==item){
                array.splice(i,1);
                break;
            }
        }
    }
});
      </script>
   </body>
</html>

1 Ответ

2 голосов
/ 18 февраля 2020

В данный момент вы отображаете массив выбранных элементов. Вместо этого просто отобразите длину.

Вы можете просто изменить

$("#select-result").text(liSelected.length === 0 ? "none" : liSelected.join(", "));

на

$("#select-result").text(liSelected.length === 0 ? "none" : (liSelected.length + ' out of 5'));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...