首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >while-mousedown

while-mousedown
EN

Stack Overflow用户
提问于 2013-04-13 02:22:26
回答 2查看 1.4K关注 0票数 0

我需要解决这个问题。

当鼠标按下最大按钮时,变量max应增加1。当我按住min按钮时,max变量应该会减少,但它对我不起作用。

我怎么才能让它工作呢?

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-13 02:31:28

以下是一些事情:

1-我已经从你的输入标签中删除了内联事件。

2-为了让时间间隔正常工作,你需要有一个该过程的参考。在我的示例中,minIntervalmaxInterval允许我调用clearInterval onmouseup

3-为了让它们正常工作,您需要在DOM加载/准备好之后运行脚本,所以要将代码放在body标记的末尾。

4- speed的值基本上就是您希望间隔运行的速度。

HTML

代码语言:javascript
复制
<button id="max" >max</button>
<input id="num" type="number" disabled="disabled" value="0">
<button id="min">min</button>

JavaScript

代码语言: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

票数 1
EN

Stack Overflow用户

发布于 2013-04-13 02:30:14

这应该是可行的。

代码语言:javascript
复制
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);
    }
}   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15978305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档