Блок рейтинга для сайта
Доброго времени суток, пытаюсь написать скрипт, который должен выводить рейтинг статьи, то-есть пользователь кликает по кнопке и рейтинг статьи возрастает на +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, время: 06:44. |