gpt4 book ai didi

javascript - 如何在每次执行另一个函数之前检查一个函数是否已被调用

转载 作者:行者123 更新时间:2023-12-01 01:35:59 26 4
gpt4 key购买 nike

我有一个 HTML 元素的 onMouseDownEssence() 和 onMouseUpEssence() 函数,如何在调用 onMouseUpEssence() 之前检查是否每次都调用 onMouseDownEssence() 以确保获得正确的鼠标按下位置?

这是 mousedown 函数:

var mouseDownIndex = -1;

function onMouseDownEssence(downIndex, e, className) {

dragTarget = e.target;
holdStarter = new Date().valueOf();

mouseDownIndex = downIndex;
}

这是 mouseup 函数:

function onMouseUpEssence(upIndex, e, className) {

var el = e.target;
var holdActive = (new Date().valueOf() - holdStarter) > holdDelay;

if (holdActive) {
var thisUpTargetIndex = el.getAttribute("name");

if (lastUpTargetIndex != null && thisUpTargetIndex != lastUpTargetIndex) {
// console.log("double drag done");
el.removeAttribute(dbl);
lastUpTargetIndex = null;

var selectedText = clickDragAutoExpand(mouseDownIndex, upIndex,
className);

} else {
// console.log("drag done");
var selectedText = clickDragAutoExpand(mouseDownIndex, upIndex,
className);
}

holdActive = false;
} else if (el.getAttribute(dbl) == null) {
el.setAttribute(dbl, 1);
setTimeout(
function() {
if (el.getAttribute(dbl) == 1 && !dragTarget) {
if (e.button === 0) {
// console.log("single clicked ");
el.removeAttribute(dbl);

var selectedText = clickAutoExpand(upIndex,
className);

}
} else {
if (el.getAttribute(dbl) != null)
lastUpTargetIndex = el.getAttribute("name");
}
}, dblDelay);
} else {
// console.log("double clicked");
el.removeAttribute(dbl);

var selectedText = clickAutoExpand(upIndex, className);
}

dragTarget = null;

}

最佳答案

我的方法是跟踪是否调用了mouseDownEssence()。如果没有,请在继续操作之前调用它。这种方法的工作原理如下。对于异步函数,它的工作方式有所不同,但 mouseDownEssence() 似乎是一个同步函数。

let isMouseDownEssenceCalled = false;

function mouseDownEssence() {
isMouseDownEssenceCalled = true;

...
}

function mouseUpEssence() {
if (!isMouseDownEssenceCalled) {
mouseDownEssence()
}

...

isMouseDownEssenceCalled = false;
}

关于javascript - 如何在每次执行另一个函数之前检查一个函数是否已被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52818455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com