Events 如何使事件在DOJO中运行时不会发生?
是否有某种方法可以禁用所有事件,直到在DOJO中完成事件?例如,我正在淡出元素,用户可以再次单击该事件,但它将不会完成最后一个事件。我不确定我是否理解您在这里所说的事件的含义,但如果您想阻止与页面上的元素交互,您可以设置一个模式屏蔽。。。基本上是一个用于捕获事件的透明DIV元素,以高z索引定位在您的内容上,我不确定我是否理解您这里所说的事件的含义,但是如果您想阻止与页面上的元素交互,可以设置一个模式屏蔽。。。基本上是一个用于捕获事件的透明DIV元素,它以高z索引定位在您的内容上。如果您控制所有需要禁用的事件,您可以尝试使用全局变量作为“锁”-在启动动画时将其设置为打开(如果发现触发了此标志,则将所有事件中止),并在动画结束时将其取消设置 Javascript不是并发的(因此您不需要担心计时问题和“实际”锁定),但衰落可能在幕后使用setTimeout(允许在完成之前触发其他事件)。如果是这种情况,请记住您需要使用ONED回调来正确检测动画何时结束Events 如何使事件在DOJO中运行时不会发生?,events,dojo,Events,Dojo,是否有某种方法可以禁用所有事件,直到在DOJO中完成事件?例如,我正在淡出元素,用户可以再次单击该事件,但它将不会完成最后一个事件。我不确定我是否理解您在这里所说的事件的含义,但如果您想阻止与页面上的元素交互,您可以设置一个模式屏蔽。。。基本上是一个用于捕获事件的透明DIV元素,以高z索引定位在您的内容上,我不确定我是否理解您这里所说的事件的含义,但是如果您想阻止与页面上的元素交互,可以设置一个模式屏蔽。。。基本上是一个用于捕获事件的透明DIV元素,它以高z索引定位在您的内容上。如果您控制所有需
var lock = false;
function my_event_handler(evt){
if(lock) return; //someone else is using the lock;
//perhaps cancel event propagation as well?
lock = true;
dojo.anim({
...
onEnd: function(){
lock = false;
}
});
}
警告:这是我头顶上的伪代码。如果您没有注意到,我已经有一段时间没有使用dojo动画了:P
如果您控制所有需要禁用的事件,您可以尝试使用全局变量作为“锁”-在启动动画时将其设置为打开(如果发现触发了此标志,则使所有事件中止),并在其结束时取消设置
Javascript不是并发的(因此您不需要担心计时问题和“实际”锁定),但衰落可能在幕后使用setTimeout(允许在完成之前触发其他事件)。如果是这种情况,请记住您需要使用ONED回调来正确检测动画何时结束var lock = false;
function my_event_handler(evt){
if(lock) return; //someone else is using the lock;
//perhaps cancel event propagation as well?
lock = true;
dojo.anim({
...
onEnd: function(){
lock = false;
}
});
}
警告:这是我头顶上的伪代码。如果您没有注意到,我已经有一段时间没有使用dojo动画了:P