有人可以向我解释为什么这不起作用,我的Javascript中的流程似乎已被打破......
总是会发生这种情况:" otherFunction"的最后一个if语句总是评估为真,但似乎因为我在那里超时,所以回报永远不会发生。
我是否需要通过首先将匿名timeOut-function中的true返回到我的" otherFunction"来传递回传。然后又从那个到被调用者?不知道怎么做......
myObj.ready = function() {
var self = this;
var readyFlag = self.otherFunction();
if (readyFlag == true) {
$("#slide1").remove();
}
else {
//If not fully transitioned in yet, postpone 1,5s
setTimeout(function(){
self.ready();
},1500);
return false; //end execution here, wait for timeout to pick it back up
}
}
myObj.otherFunction = function() {
//check twice (with a couple of milliseconds inbetwwen) and get the same value, transition must be finished...
var check1 = $("#slide").css('-webkit-transform');
setTimeout(function(){
console.error('check1: '+check1); //print: none
var check2 = $("#slide1").css('-webkit-transform');
console.error('check2: '+check2); //print: none
if (check1 == check2) {
console.error('transition IS ready...');
return true;
}
else {
console.error('transition NOT ready...');
console.error('check2: '+check2);
return false;
}
},30);
}
答案 0 :(得分:1)
您无法将“超时”功能中的数据返回到otherFunction
。如果我理解你想要的东西,你似乎运气不好。