簡體   English   中英

jQuery-在mousedown上觸發常規函數調用

[英]jQuery - triggering a regular function call on mousedown

我希望在給定的時間間隔內定期調用某個函數,同時在特定元素上按住鼠標左鍵。 有沒有在jQuery中執行此操作的簡單方法,還是應該使用香草javascript和setInterval / setTimeout?

謝謝

這是一個提供mousehold事件的jQuery插件。

http://remysharp.com/2006/12/15/jquery-mousehold-event/

如果轉到演示頁面 ,然后單擊最后一個輸入框右側的箭頭之一,您將看到其工作原理。

這就是我要做的:

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);

因此,您將處理程序綁定到mousedownmouseup事件,並相應地設置hold CSS類。 同時,獨立計時器iv將檢查是否設置了hold類,並相應地調用了函數( foo )。

現場演示: http : //jsfiddle.net/simevidas/7CUFE/

因此,jQuery不提供任何功能監視支持,您可以按如下方式使用香草setTimeout函數:

var timer;

function functionToRun() {
    // Function code here...
    functionToRun();
}

var inFunction = function() {
    timer = window.setTimeout(functionToRun, intervalToRunFor);
}

var outFunction = function() { 
    window.clearTimeout(timer);
}

$('selector').hover(function() { inFunction, outFunction }
var mouseDown = false;

$('#yourID').bind('click', function() {
    mouseDown = true;
});

$('#yourID').bind('mouseup', function() {
    mouseDown = false;
});

setInterval('checkOut();',5000);

function checkOut() {
   if(mouseDown) alert('mouse is down! Whatup!');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM