javascript - JavaScript 中的开始和结束函数

标签 javascript jquery

我正在使用一段简短的代码,看看是否可以在用户按下鼠标时运行一个函数,然后在用户抬起鼠标时结束该函数。对于此示例,我尝试在用户按住按钮的同时移动鼠标时增加屏幕上显示的数字。我希望一旦他们释放按钮它就卡住并停止,但是计数器只是重置并且计数从 0 继续,即使按钮没有被按下...

function dragInit(state, e) {
    var i = 0;
    $(document).on("mousemove", function() {
        if (state) {
            i+=1;
            $('#debug').text(i); //Show the value in a div
        }
    });
}

$(document).ready(function() {

$(document).on(
    {mousedown: function(e) {
        var state = true;
        dragInit(e, state);
    },
    mouseup: function(e) {
        var state = false;
        dragInit(e, state);
    }
    });
});

顺便说一句,有没有办法可以在屏幕上显示变量是真还是假?当我尝试时,它只显示[object Object]。

最佳答案

你的代码中有很多错误。我建议您在开始使用 jQuery 之前阅读更多基本概念。

mouseupmousedown 事件绑定(bind)上,传递给 dragInit() 的参数顺序都是错误的。

计数器重新启动的原因是因为变量 i 是本地变量,因此它仅在声明它的函数上下文期间存在。

您对状态变量犯了同样的错误,但在这种情况下完全没有必要声明它。

考虑使您的计数器成为全局计数器(尽管这不是一个好的做法)。

我无法向您提供代码,因为我正在通过手机接听。解决方案是创建一个 mousemove 事件,在递增计数器之前检查是否按下了鼠标按钮。

希望有帮助

关于javascript - JavaScript 中的开始和结束函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16097179/

相关文章:

javascript - 正确重命名克隆输入 JQuery

javascript - 如何在ExtJS中为Iframe设置Id?

javascript - 为什么表格的主体滚动条在 Internet Explorer 11 上不起作用?

javascript - 使用 JQuery Ajax 提交表单仍然显示目标页面

javascript - 构建 NextJs 应用程序时如何解决 'Build error occurred ReferenceError: self is not defined' 错误?

javascript - 如何使用 Javascript 或 Java 获取 CSV 动态更改的实际数字

javascript - JS 无法正确显示已加载的页面

javascript - 如何执行作为参数传递的 JQuery 匿名函数?

JSON 数据的 JavaScript SUM 和 GROUP BY

javascript - 在 react 中使用 webpack 导入 css