Отображение количества нажатий на divs с самого начала

#jquery #count #string-length

#jquery #количество #длина строки

Вопрос:

Я использую этот код для подсчета количества нажатий пользователя на div, который имеет текущий статус css .selected:

 $(this)
    .click(function() {
    $(this);
    var n = $( ".selected" ).length;
    $( ".catched" ).text(n);
})
  

Затем я показываю его с помощью:

 <div data-id="1" class="p001 mix">Div 1</div>
<div data-id="2" class="p002 mix">Div 2</div>

<div id="footer">
    <span class="catched"></span> / 151
</div>
  

Скрипка

Когда пользователь еще не нажал ни на один div, он не показывает сумму, но когда пользователь нажимает (в любом месте), он отображает сумму. Я бы хотел отобразить его до того, как пользователь нажмет. Также, когда пользователь обновляет страницу, она должна отображаться, поскольку она запоминает, сколько divs имеют класс, выбранный с помощью localstorage.

Заранее благодарю вас.

Ответ №1:

Немедленно вызовите click() событие для элемента при загрузке, чтобы заполнить значение:

 $(this).click(function() {
    var n = $(".selected").length;
    $(".catched").text(n);
}).click(); // < add this
  

Обновленная скрипка

Обратите внимание, что этот код должен быть в вашем обработчике document.ready (как я изменил его, чтобы он был в скрипке), а также ваш $(this) оператор lone является избыточным и может быть удален.