Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Подсчет количества кликов мыши на объект в jquery (https://javascript.ru/forum/events/16503-podschet-kolichestva-klikov-myshi-na-obekt-v-jquery.html)

puzjob 05.03.2017 14:14

рони,
Спасибо большое Рони!

Grasss 02.02.2019 00:21

Цитата:

Сообщение от walik (Сообщение 100140)
Так что ли ?
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
	$('#myObj').click(function() {
		$('#counter').html(+$('#counter').html()+1);
	});
});
</script>
<style>
#myObj {
	border: 1px;width: 100px;height: 100px;
}
</style>
</head>
<body>
<div id="myObj">Click Me</div>
<div id="counter">0</div>
</body>
</html>

А можно сделать так, чтобы клики сохранялись в текстовый файл и при перезагрузке страницы данные подгружались из этого файла?

j0hnik 02.02.2019 06:10

Grasss,
Не лучше ли в localStorage сохранять?

Grasss 02.02.2019 12:17

Суть как раз в том, чтобы данные хранились на сервере в файлике.
Каждый посетитель должен видеть общее число кликов.

Grasss 02.02.2019 19:14

Можно пример кода?

рони 02.02.2019 20:09

:-? похоже на чат, только вывод общего количества сообщений.

Grasss 02.02.2019 22:11

Примерно так

j0hnik 03.02.2019 03:46

const express = require('express');
const fs = require('fs');
const bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.text({ type: 'text/plain' }));

app.route('/').get((req, res) => {
	res.send(`
	<div id="myObj">Click Me</div>
	<div id="counter">${fs.readFileSync('count.txt').toString() || '0'}</div>
	<script>
	myObj.onclick = e=> {
	var req = new XMLHttpRequest();

req.onreadystatechange = e => {
	if(req.readyState == 4 && req.status == 200){
		counter.textContent = req.response;
	}
};

req.open('POST', 'http://localhost:3000');
req.setRequestHeader('Content-Type', 'text/plain');
req.send('count++');
};
	</script>	
	`);
}).post((req, res) => {
	if (req.body === 'count++') {
		var count = (Number(fs.readFileSync('count.txt')) + 1).toString();
		fs.writeFileSync('count.txt', count);
		res.send(count);
	}
});
app.listen(3000);


хотя для такой задачи наверное больше socket подойдет


Часовой пояс GMT +3, время: 16:36.