2017-02-28 41 views
-1

我試圖創建一個函數,其中用戶單擊鏈接(mousedown行爲),<a href="#" id="down"> - </a><a href="#" id="up"> + </a>。 基於哪一個被點擊,div中的值隨着1而增加或減少:<div id="counter">1</div>提高速度的jQuery計數器

最小值是1,最大值是100.到目前爲止,沒有真正的問題。但...
...當用戶保持按下鏈接時,數字應該首先每1000ms更換一次,7次迭代後應該更改爲每500ms一次,並且在5次迭代後應該每250ms更改一次IF數字不能被5除,否則速度'停留'500ms。

在發佈時,計數器應立即停止。

我希望這種有道理,我真的不知道從哪裏開始。

感謝, Knal

+0

我會實現速度要求的功能開始。 – MaxZoom

+0

也許這有助於:[https://api.jquery.com/mousedown/](https://api.jquery.com/mousedown/) –

+0

@MaxZoom對不起,我不明白你的評論。 – knalpiap

回答

0

首先,如果你想檢測的定位標記的點擊事件,然後刪除href屬性。爲了您的要求,我認爲下面的代碼有幫助。

var currentValue = 1; 
 
var totalNumberOfClicks = 0; 
 
$(document).ready(function() { 
 
$("#down").click(function(){ 
 
if(currentValue!=1) 
 
currentValue--; 
 
totalNumberOfClicks++; 
 
handleLogic(); 
 
}); 
 

 
$("#up").click(function(){ 
 
if(currentValue!=100) 
 
currentValue++ 
 
totalNumberOfClicks++; 
 
handleLogic(); 
 
}); 
 
}); 
 

 
function handleLogic() 
 
{ 
 
if(totalNumberOfClicks<=7) 
 
{ 
 
    $("#counter").delay(1000).text(currentValue); 
 
} 
 
else if(totalNumberOfClicks<=12) 
 
{ 
 
$("#counter").delay(500).text(currentValue); 
 
} 
 
else 
 
{ 
 
if(totalNumberOfClicks%5!=0) 
 
$("#counter").delay(500).text(currentValue); 
 
else 
 
$("#counter").delay(250).text(currentValue); 
 
} 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
</head> 
 
<body> 
 
<a style="cursor:pointer;font-size:20px;" id="down"> - </a> or <a style="cursor:pointer;font-size:20px;" id="up"> + </a> 
 
<div id="counter">1</div> 
 
</body> 
 
</html>

+0

感謝您的輸入! 也許我還沒有完全清楚我的目標:想在用戶按下鏈接時減少和增加數字。當他釋放數字'凍結'但定時器(或間隔)被重置。 當我嘗試將'click'改爲'mousedown'時,我仍然無法正常工作...... – knalpiap