Блок рейтинга для сайта
Доброго времени суток, пытаюсь написать скрипт, который должен выводить рейтинг статьи, то-есть пользователь кликает по кнопке и рейтинг статьи возрастает на +1, только начал изучать JS, вот что удалось написать...
<div id="com"> <button id="com-check">Нравиться</button> <div id="com-out"></div> </div> let comNum = 0; document.getElementById('com-check').onclick = function(){ let comOut = document.getElementById('com-out'); comOut.innerHTML = comNum; localStorage.setItem('coment', comNum); comNum++; } let storCom = localStorage.getItem('coment'); document.getElementById('com-out').innerHTML = storCom; Проблема в том что, как сделать чтобы один пользователь мог только раз поставить рейтинг, и второе, после перезагрузки страницы рейтинг сохраняется, но при клике обнуляется счетчик и начинается все с нуля. Спасибо... |
TheSanches,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
TheSanches,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script> window.addEventListener("DOMContentLoaded", function() { var comNum = localStorage.getItem("coment"), but = document.querySelector("#com-check"), out = document.querySelector("#com-out"); if (!comNum) { comNum = 0; but.addEventListener("click", function rating() { comNum++; localStorage.setItem("coment", comNum); out.innerHTML = comNum; but.removeEventListener("click", rating); }); } out.innerHTML = comNum; }); </script> </head> <body> <div id="com"> <button id="com-check">Нравиться</button> <div id="com-out"></div> </div> </body> </html> |
Спасибо
|
Цитата:
|
Цитата:
|
TheSanches,
Цитата:
|
TheSanches,
серверных языков много, какой выбрать, это вопрос "доходчивости и понимания" языка, это не мне решать. Просто проверки подобные этой должны выполняться сервером и разрешения должен выдавать он. Все что на клиенте легко подделать или обойти. Голосование обычно разрешено регистрированным пользователям, что облегчает задачу серверу. В противном случае нужно решать непростую задачу - однозначного определения уникальности любого пользователя. |
Часовой пояс GMT +3, время: 03:07. |