2015-08-26 48 views
0

我創建了一個簡單的函數,繼續增加全局變量「我」,當你保持按下一個鍵。這裏的源代碼,很簡單:我希望onmousedown的行爲像onkeydown維護通話功能

<html> 
<head> 
</head> 
<body> 

<script type="text/javascript"> 

var i = 0; 

document.body.onkeydown = function() 
{ 
    i++; 
console.log(i);  
}; 

</script> 

</body> 
</html> 

現在,我想同樣的效果,當我更換的onkeydown通過onmousedown事件:

<html> 
<head> 
</head> 
<body> 

<script type="text/javascript"> 

var i = 0; 

document.body.onmousedown = function() 
{ 
    i++; 

    console.log(i); 
}; 

</script> 

</body> 
</html> 

=>但是,這是行不通的,因爲控制檯顯示一個時間我的價值。

你有什麼想法嗎?先謝謝你。

+0

一切正常,您使用哪個瀏覽器? – trquoccuong

+1

潛在的重複http://stackoverflow.com/questions/4961072/jquery-continuous-mousedown – TuanDT

回答

1

原因不起作用,因爲你認爲它應該是因爲onkeydown事件有點奇怪,因爲它不是'只'在關鍵下來,但也在間隔之後。然而

onmousedown事件僅在鼠標這樣來模擬你將不得不做一些像

<script> 
var i=0; 
var dt=100; 
var interval; 
document.body.onmousedown = function(){ 
    interval = setInterval(function(){i++;console.log(i);},dt) 
} 
document.body.onmouseup = function(){ 
    clearInterval(interval); 
} 
</script> 

其中dt是增加了價值,我之間毫秒的時間相同的行爲。

+0

哇,非常感謝你!你解決了我的問題,因爲這是我想要的。再次感謝你。 – totoaussi