var startTime = parent.startTime;
var endTime = parent.endTime;
var divID = '#'+parent.divId;
var description = parent.description;
do {
var currentTime1 = $('video').get(0).currentTime;
if(currentTime1 >= startTime) {
console.log('in if');alert('hi');
parent.$(divID).append(description);
}
setTimeout(function(){$('video').get(0).currentTime = $('video').get(0).currentTime + 1; currentTime1 = parseInt($('video').get(0).currentTime); }, 1000);
} while (currentTime1 <= endTime);
parent.$(divID).empty(); console.log('at end');
以上代码停止响应,debuger显示此行var currentTime1 = $('video')。get(0).currentTime;
答案 0 :(得分:2)
由于
,您的代码无限循环do {
var currentTime1 = $('video').get(0).currentTime;
} while (currentTime1 <= endTime);
它的执行速度与您的浏览器允许的速度一样快,因此卡住了,因为setTimeout
将在1秒后执行,而您的currentTime1将永远不会更改。
答案 1 :(得分:1)
var startTime = parent.startTime;
var endTime = parent.endTime;
var divID = '#'+parent.divId;
var description = parent.description;
var myVar = setInterval(check,1000);
function check()
{
var currentTime1 = parseInt($('video').get(0).currentTime);
if(currentTime1 >= parent.endTime)
{
clearInterval(myVar);
parent.$(divID).empty();
}
else if(currentTime1 >= parent.startTime)
{
parent.$(divID).empty();
parent.$(divID).append(description);
}
}
此代码在没有循环结构的情况下工作。 setInterval()可以反复重复操作。