开发者社区> 问答> 正文

js怎么监听鼠标长按事件?

就是我鼠标长按不放,事件就一直触发。

打个比方:我按一个按钮,点一下输入框里的数字+1,点着不放,数字就一直向上+。

求js大神解答。急....

展开
收起
a123456678 2016-07-18 10:44:25 5421 0
1 条回答
写回答
取消 提交回答
  • 有两个方案

    1、如果你的用户浏览器比较高级,你可以直接用html5的input来实现。自带增加和减小按钮。可以设置最大最小值和步长。

    <input type="number" value="0" />
    2、如果你的用户群体不定,而且你要求定制性强一些,那么自己实现也很简单。
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>test</title>
    </head>
    <body>
    <button id="btnPlus">+1</button><input type="text" value="0" id="txt" /><button id="btnMinus">-1</button>
    <script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
    var timer;
     
    function changeText(val){
      var txt = $('#txt');
      txt.val(parseInt(txt.val(),10) + val);
    }
     
    function clear(){
      clearInterval(timer);
    }
     
    function change(val){
      return function(){
        timer = setInterval(function(){
          changeText(val)
        }, 50)
      }
    }
    $('#btnPlus').on('mousedown', change(1))
    .on('mouseup', clear);
    $('#btnMinus').on('mousedown', change(-1))
    .on('mouseup', clear);
    </script>
    </body>
    </html>
    2019-07-17 19:57:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载