0

我需要解决这个问题。

当在最大按钮上按下鼠标按钮时,变量max应该增加一。当我按住 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>
4

2 回答 2

1

例子

一些东西:

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

有用的网址:

设置间隔

清除间隔

于 2013-04-12T18:31:28.170 回答
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);
    }
}   
于 2013-04-12T18:30:13.560 回答