Чтобы иметь постоянное количество всех флажков, проверяемых всеми пользователями, вам необходимо иметь центральную общую сумму, которую все рассчитывают на обновление. Это будет довольно сложно для даже крупных сайтов, таких как YouTube, которые все еще борются с этим (хотя и в меньшей степени).
Я не знаю, что это может быть выполнено исключительно в JS (если кто-нибудь знает, пожалуйста, отредактируйте этот ответ), и вам, скорее всего, понадобится какой-то внешний код.
Один подход можно взять бы:
- обновление местный общий проверяемых флажков по щелчку
- установить таймер 1/2 секунды по щелчку
- один раз по истечении заданного времени, Написать Ajax запрос на серверной страницу
- фоновой страница получает обновление, обновление центральной общей
Есть много Кете r подходит вам. Вероятно, вы столкнетесь с такими проблемами, как, например, центральная сумма может быть не очень точной (если запросы ajax прерываются), а использование полосы пропускания увеличивается из-за запросов ajax.
Gennady Dogaev поделился действительно хороший код, который сообщений Идентификатор флажком и его значение на другую страницу. На этой странице, скорее всего, будет логика для обновления базы данных или чего-то похожего на отслеживание того, какие флажки используются.
<body>
<input type="checkbox" id="check_1" /> 1
<input type="checkbox" id="check_2" /> 2
<input type="checkbox" id="check_3" /> 3
</body>
$(function(){
$("input[type=checkbox]").click(function(){
var box = $(this);
var data = {
id: box.prop('id'),
checked: box.is(':checked')
};
$.get('https://stackoverflow.com/', data).always(function(response){
console.log('server responded', response);
/*Click registered, do what you want here*/
});
});
});
https://jsfiddle.net/nrLpxLuf/
Ниже ответ должен был помочь рассчитывать все отмеченные флажками на странице и обновить в общей сложности на месте. Я оставил его здесь для справки.
Вам не нужно перебирать все элементы, чтобы прикрепить к ним одно событие щелчка.
Вместо этого добавьте событие click в коллекцию флажков, а затем обновите полную переменную из функции щелчка.
var $inputs = $('[id^="checkbox"] input');
var total = $inputs.filter(':checked').length; //this will be 0 if none are found
$inputs.on('click', function(event) {
if($(this).is(':checked')) {
total++;
} else {
total--;
}
console.log(total);
});
Если вы хотите только посмотреть, было ли оно нажато, просто добавьте к общей сумме.
Что вы хотите сделать с помощью счетчика посещений? Ответ зависит от этого –
Чтобы зарегистрировать информацию. существует ~ 15 различных флажков (все, что начинается с идентификатора «checkbox»). Информация будет записана. В настоящее время я тестирую ответы, чтобы узнать, работают ли они. – angie
Если вы хотите регистрировать клики для себя (а не для пользователей) , вы можете отправить запрос ajax на ваш сервер при щелчке по галочке и подсчитать количество кликов на сервере. Но вы должны убедиться, что страница будет перезагружена после вызова ajax или она (ajax-вызов) будет прервана. –