javascript - Bootstrap数字输入旋转器不会停止旋转

标签 javascript twitter-bootstrap spinner

<强> Demo on Bootsnipp

问题:

如果您按住左键单击 + 或 -,然后右键单击,将鼠标移离 + 或 - 按钮并松开两次单击,“mouseup”功能将永远不会触发,并且会一直保留添加或减去数字,您无法阻止它。

想法?

提前致谢!

最佳答案

下面代码中的说明:

$(function() {
    var action;
    $(".number-spinner button").mousedown(function () {
        btn = $(this);
        input = btn.closest('.number-spinner').find('input');
        btn.closest('.number-spinner').find('button').prop("disabled", false);
        // You're creating a new interval on every mousedown (left and right click)
        // You need to clear the previous interval to make this work.
        clearInterval(action);
        if (btn.attr('data-dir') == 'up') {
            action = setInterval(function(){
                if ( input.attr('max') === undefined || parseInt(input.val()) < parseInt(input.attr('max')) ) {
                    input.val(parseInt(input.val())+1);
                }else{
                    btn.prop("disabled", true);
                    clearInterval(action);
                }
            }, 50);
        } else {
            action = setInterval(function(){
                if ( input.attr('min') === undefined || parseInt(input.val()) > parseInt(input.attr('min')) ) {
                    input.val(parseInt(input.val())-1);
                }else{
                    btn.prop("disabled", true);
                    clearInterval(action);
                }
            }, 50);
        }
    }).mouseup(function(){
        clearInterval(action);
    }).mouseout(() => {
        // Added to stop spinning when mouse leaves the button
        clearInterval(action);
    });
});

回顾:

  1. 按下鼠标时清除上一个间隔。
  2. 也清除鼠标移开上的间隔。

关于javascript - Bootstrap数字输入旋转器不会停止旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43823933/

相关文章:

css - Bootstrap 12 列尺寸 1 在超小屏幕上不适合

javascript - 单击更改字形 + 表标题颜色更改

javascript - 如何将 AngularJS 指令应用于 ajax 内容?

javascript - 使用事件触发器如何在输入更改时将值传递给函数

javascript - Bootstrap 可切换选项卡,无需选项卡链接

CSS:加载微调器方形圆形外观

android - 如何将微调器中的文本放入文件?

Android:setSelection 对 Spinner 没有影响

javascript - Promise 应该被错误或字符串拒绝吗?

javascript - 重新加载选择下拉框而不刷新页面