2017-08-07 72 views
1

说我得到一个onclick甚至返回true或false并将其存储在一个变量。如何使用true/false条件在javascript的if循环中暂停视频?

$('.box1').on('click', function(){ 
      boxClicked = true; 
      video1[0].play(); 
     }); 

后来在代码中,我正在使用;

$(video1).on('timeupdate', function() 
{ 
     var currentTime = Math.round(this.currentTime); 
     var durationNum = Math.round(this.duration); 
     var formattedCurrentTime = secondsToHms(currentTime); 
     var formattedDurationTime = secondsToHms(durationNum) 
     onTrackedVideoFram(formattedCurrentTime, formattedDurationTime) 

     if(currentTime == boxTime && boxClicked == true) { 
      video1[0].pause(); 
     }  
    }); 

}); 

boxTime是具有比如说10 预先存储的值的变量所以应该在10秒的持续时间的检查,如果boxClicktruefalse并且如果false,它应该暂停视频。

我唯一的问题......它没有这样做。

+1

两种可能:1)你声明'boxClicked'全球范围内,所以这将是提供给两个功能? 2)你确定'timeupdate'运行频率足够多,以至于'currentTime'在某些时候肯定会*完全* 10吗? (我怀疑视频帧速率可能意味着当前时间从10以下跳到10以上,因此从未匹配确切的条件。) –

+0

您是宾果时间问题..它从来没有确切的。在铬它有时好,但在Firefox上它永远不会停止在一个特定的点。 编码这不是一个解决方案,因为我不知道如何解决这个问题。 但是我可以用一种方式创建视频,这样在画面中不会有明显的差别。 – Logan

+0

你说得对,它可能是一个全球性问题。 我把它从true改为false liek @ ajc2000建议和它的工作(即使它不应该) – Logan

回答

0

你说你只想暂停视频boxClickedfalse。如果是这样的话,那么只需检查boxClickedfalse而不是true在if语句:

if(currentTime == boxTime && boxClicked == false) { 
    video1[0].pause(); 
} 
+0

我不能这样做。 点击我更改boxclick为true, 用于真正触发其他事情。 – Logan

+0

不知何故,这工作.. – Logan