如何解决是否可以按周期隐藏转换框?
我正在尝试将鼠标移出1秒后隐藏转换框,但无法使其正常工作。
现在抛出一个错误:
TypeError:oLine_TR [l]未定义。
如果我将oLine_TR [l]替换为oLine_TR [0],就可以了。
为什么会这样?
var oGroupLineBox=[];
var oLine_TR=[];
var aLineGroupTimer=[];
var oStage = new Konva.Stage({
container: 'container',width: 800,height: 500,});
var oLayer = new Konva.Layer();
oStage.add(oLayer);
for(l=0; l<2; l++) {
//Boxes
oGroupLineBox[l] = new Konva.Group({
draggable: true,});
oLayer.add(oGroupLineBox[l]);
//Transformation
oLine_TR[l] = new Konva.Transformer({
node: oGroupLineBox[l],visible: true,draggable: true,});
oLayer.add(oLine_TR[l]);
oGroupLineBox[l].on('click mouseover mousedown mouseup',function () {
oLine_TR[l].show();
oLayer.draw();
clearTimeout(aLineGroupTimer[l]);
});
oGroupLineBox[l].on('mouseout',function () {
aLineGroupTimer[l]=setTimeout(function() {
oLine_TR[l].hide();
oLayer.draw();
},1000);
});
}
解决方法
这是与变量声明,异步调用和循环相关的常见javascript问题。
作为解决方案,您可以尝试在循环中使用let
:
for(let l=0; l<2; l++) {
// your code
}
有关更多信息,请在这里查看:setTimeout in for-loop does not print consecutive values
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。