javascript - 在其他函数中仅执行一次函数

标签 javascript jquery html

我有以下功能:

div_paper.onmousedown = function(event) {
    var mouseCoords = getCoords(event);
    startX = mouseCoords.x - offset[0];
    startY = mouseCoords.y - offset[1];
    rect = paper.rect(startX, startY, 0, 0);
    document.onmousemove = doDraw;
    // the function below i would like to fire once
    rect.drag(drag_move, drag_start, drag_up);
};

如您所见,每次鼠标按下时都会触发。我只想在第一次鼠标按下后触发一次 drag 函数。我应该使用 jQuery .one() 吗?

提前致谢。

最佳答案

这是即兴的,但你可以尝试:

var dragged = false;
div_paper.onmousedown = function(event) {
    var mouseCoords = getCoords(event);
    startX = mouseCoords.x - offset[0];
    startY = mouseCoords.y - offset[1];
    rect = paper.rect(startX, startY, 0, 0);
    document.onmousemove = doDraw;
    // the function below i would like to fire once
    if (!dragged)
    {
       dragged = true;
       rect.drag(drag_move, drag_start, drag_up);
    }
};

关于javascript - 在其他函数中仅执行一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17221848/

相关文章:

java - 如何对 html 字符串进行 xsl 模板匹配

php - ajax json解码mysql获取数组

javascript - 使用 Javascript Bookmarklet 按标题对页面内容进行分块(第 2 部分)

javascript - 如何在单击按钮时添加或附加文本框?

jquery - Bootstrap 菜单在悬停时显示菜单而不是单击

html - 在 ipython notebook 中操作 HTML() 模块字体大小

javascript - 我可以从 JavaScript 查找用户代理吗?

asp.net - Asp.Net RequireFieldValidator 和 Javascript 所见即所得的问题

javascript - 如何从子窗口调用父的父javascript函数

c# - 如何在特定位置的 div 中添加用户控件?