Вот как я бы это сделал:
HTML:
<div id="box"></div>
JavaScript:
var box = $('#box'),
iv;
function foo() {
box.append('*');
}
box.bind('mousedown mouseup', function(e) {
$(this).toggleClass('hold', e.type === 'mousedown');
});
iv = setInterval(function() {
box.hasClass('hold') && foo();
}, 1000);
Таким образом, вы связываете обработчик с mousedown
и mouseup
события, и соответственно установить класс CSS hold
.Между тем, независимый таймер iv
проверит, установлен ли класс hold
, и соответственно вызовет вашу функцию (foo
).
Демонстрация в реальном времени: http://jsfiddle.net/simevidas/7CUFE/