Javascript OnClick Повтор - PullRequest
       6

Javascript OnClick Повтор

3 голосов
/ 08 февраля 2012

У меня есть кнопка формы с событием onclick, которое запускает простую функцию javascript (добавляет 1 к значению).

Мне нужно каждый раз нажимать кнопку мыши, чтобы запустить, есть ли способ сделать это так, если удерживать кнопку мыши, она тоже запускается, но каждые полсекунды?

ТЕКУЩИЙ КОД

<script>
  function incrementValue(id) {
    var value = parseInt(document.getElementById(id).innerHTML);
    value=++; 
    document.getElementById(id).innerHTML = value;
    }
</script>

HTML

<input type="text" id="attk">
<input type="text" id="def">

<input type="button" onclick="incrementValue('attk')">
<input type="button" onclick="incrementValue('def')">

Ответы [ 4 ]

4 голосов
/ 08 февраля 2012

Следующее будет повторяться каждые 500 мс, пока нажата кнопка - и будет увеличивать счетчик

JavaScript:

var intervalId; // keep the ret val from setTimeout()
function mousedownfunc(divid) {
    intervalId = setInterval(runme, 500, divid);
}

function mouseupfunc() {
    clearInterval(intervalId);
}

function runme(divid) {
    document.getElementById(divid).innerHTML = parseFloat(document.getElementById(divid).innerHTML) + 1;
}

HTML:

<input type="button" onmousedown="mousedownfunc('counter')" value="clickme" onmouseup="mouseupfunc('counter')" /><br/>
<div id="counter">1</div>

Рабочий пример со счетчиком -> http://jsfiddle.net/73uKk/1/

1 голос
/ 08 февраля 2012

Вы можете сделать что-то подобное в JQuery:

var myInterval = null,
counter = 0;

            $('#buttonID').mousedown(function(){
                myInterval = setInterval(function(){
                    counter++;
                    // display it on page...
                },500);
            });

            $('#buttonID').mouseup(function(){
                clearInterval(myInterval)
            });

Определить интервал в mousedown, и когда щелчок мышью будет отпущен (mouseup), очистите этот интервал.Я надеюсь, что это будет полезно

1 голос
/ 08 февраля 2012

Вы можете добавить событие onmousedown (http://www.w3schools.com/jsref/event_onmousedown.asp) к кнопке.
Затем используйте функцию setTimeout () (http://www.w3schools.com/jsref/met_win_settimeout.asp)

<input type="submit" onmousedown="func1">


function func1(){  
  //yourcode;  
setTimeout(func1,500);
}

Не уверен насчет правильного синтаксиса в setTimout.

0 голосов
/ 08 февраля 2012

Вы можете использовать Javascript Closure

var i = 1;
var callMe = function ()
{
    var called = function(){ var j = i++; alert ('now its:'+j); }
    return called();   
}
setInterval(callMe,500);

see more

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...