2013-04-12 46 views
0

我需要解決這個問題。while-mousedown

當在最大按鈕上按下鼠標按鈕時,變量max應該加1。當我按住min按鈕時,max變量應該減少,但它不適用於我。

我如何得到這個工作?

<body> 


<button id="max" onmousedown="max()" >max</button> 
<input id="num" type="number" disabled="disabled" value="0"> 
<button id="min" onmousedown="min()">min</button> 

<script type="text/javascript"> 

function max() 
{ 
    var x = document.getElementById("num").value 
    if (x<100) {var max= document.getElementById("num").value++;} 
} 

function min() 
{ 
    var x = document.getElementById("num").value 
    if (x>0) {var max= document.getElementById("num").value--;} 
} 

</script> 

</body> 

回答

0

EXAMPLE

有幾件事情:

1 - 我已經刪除從輸入標籤內嵌的事件。

2 - 爲了使間隔正常工作,您需要參考該過程。在我的示例中,minInterval和允許我撥打clearIntervalonmouseup

3 - 要使這些工作正常,您需要在DOM加載/準備好後運行腳本,因此請將代碼放在body標記末尾附近。

4 - speed的值基本上是您希望間隔運行的速度。

HTML

<button id="max" >max</button> 
<input id="num" type="number" disabled="disabled" value="0"> 
<button id="min">min</button> 

的JavaScript

var min = document.getElementById("min"), 
    max = document.getElementById("max"), 
    num = document.getElementById("num"), 
    speed = 10, 
    minInterval, maxInterval; 

min.onmousedown = function(){ 

    minInterval = setInterval(function(){ 
     num.value--; 
    }, speed); 
}; 

min.onmouseup = function(){ 
    clearInterval(minInterval); 
}; 

max.onmousedown = function(){ 
    maxInterval = setInterval(function(){ 
     num.value++; 
    }, speed); 
}; 

max.onmouseup = function(){ 
    clearInterval(maxInterval); 
}; 

幫助鏈接:

setInterval

clearInterval

+0

非常感謝你我的朋友 – user2274090

+0

高興,這有助於=) – Chase

+0

,但我想100和0之間的num.value我不能用循環我不知道爲什麼這樣做? – user2274090

0

這應該有效。

function max() 
{ 
    var numElement = document.getElementById("num"); 
    var x= numElement.value 
    var fnc = function() 
    { 
     if (x<100){ 
     document.getElementById("num").value = x; 
     x++; 
    }  
    var i = setInterval(fnc, 100); 
    fnc(); 
    document.onmouseup = function() 
    { 
     clearInterval(i); 
    } 
} 


function min() 
{ 
    var numElement = document.getElementById("num"); 
    var x= numElement.value 
    var fnc = function() 
    { 
     if (x>0){ 
     document.getElementById("num").value = x; 
     x--; 
    }  
    var i = setInterval(fnc, 100); 
    fnc(); 
    document.onmouseup = function() 
    { 
     clearInterval(i); 
    } 
}