簡體   English   中英

鼠標按下時

[英]while-mousedown

我需要解決這個問題。

當在最大按鈕上按下鼠標按鈕時,變量max應該增加一。 當我按下最小按鈕時, 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>

這應該工作。

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

一些東西:

1-我從您的輸入代碼中刪除了內聯事件。

2-為了使間隔正常工作,您需要參考該過程。 在我的示例中, minIntervalmaxInterval允許我調用clearInterval onmouseup

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

暫無
暫無

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

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