посчитать количество кликов за интервал времени - PullRequest
2 голосов
/ 05 июля 2011

как подсчитать количество кликов за интервал времени, для instace: сколько кликов сделал пользователь за 2 секунды ??Я знаю, как считать клики, но я не знаю, как измерить время

Спасибо

Ответы [ 4 ]

1 голос
/ 05 июля 2011

HTML:

<button>Click me!</button>
<div id="status">Not Running</div>

JS:

var running = false,
    count = 0,
    run_for = 2000;

var end_counter = function() {
    if (running) {
        running = false;
        $("#status").text("Not Running");
        alert(count);
        started_at = 0;
    }
};
$('button').click(function() {
    if (running) {
        count++;
    } else {
        running = true;
        $("#status").text("Running");
        count = 1;
        setTimeout(end_counter, run_for);
    }
});

Демонстрация: http://jsfiddle.net/pXMxQ/2/

1 голос
/ 05 июля 2011

Попробуйте использовать тайм-аут, чтобы очистить функцию, которая обнаруживает щелчки. С jQuery попробуйте это:

var clicks=0;
function myClickFunction(event){
    clicks++;
}
$(function(){
    $("#something").bind("click",myClickFunction);
    setTimeout(function(){
        $("#something").unbind("click",myClickFunction);
        alert("You clicked "+clicks+" times.");
    },2000);
});

Замените #something селектором jQuery элемента, по которому вы хотите, чтобы были обнаружены щелчки, и строкой alert с вашим собственным кодом, который будет запущен после того, как таймер закончится. Ad @ м

0 голосов
/ 05 июля 2011
define a variable 
attach click handler to element 
set variable = 0
start ur timer (setTimeout)
increment variable on each click
when timeout handler excutes, detach ur handler

- OR - 

define a variable for counter
define a variable for doCounting
set counter = 0, doCounting = true
start ur timer (setTimeout)
increment counter on each click if doCounting is true
set doCounting = false when timeout handler executes
0 голосов
/ 05 июля 2011

Используйте функцию setTimeout

Например, если Каждый щелчок увеличивает переменную, вы можете сделать следующее:

 function startCounting(){
    clickcount = 0;
    setTimeout(function(){alert("you made "+clickcount +" clicks!");}, 2000);
 }
...