2013-02-20 28 views
2

我有一個視頻播放器,只要點擊一個鏈接就會打開並播放,在查看兩個視頻後,會出現一個表單,讓您對給定的信息進行評分。如何正確地殺死一個功能

我遇到的問題是當視頻完成時出現重放按鈕。我目前已經設置了setTimeout來消除視頻,並覆蓋然後運行效率表單功能。但是如果點擊重播按鈕,則setTimeout仍在運行,並在視頻重播的中途運行。這裏是我的代碼:

刪除視頻覆蓋

fnVideoOverlayOff = function() { 

    jQuery('#video, #block, .video-closebtn').css('display', 'none'); 

} 

JW播放器代碼

jwplayer('videoScreen').setup({ 
     flashplayer: '/assets/js/lib/player.swf', 
     allowscriptaccess: "always", 
     width:972, 
     height:547, 
     controlbar: "none", 
     autostart: true, 
     playlistfile: "/assets/videos/playlist.xml", 
     events: { 
      onPlaylistItem: function (event) { 

       jQuery(document).idleTimer('destroy'); 

      }, 
          onPLay: function (event) { 

          }, 
      onComplete: function (event) { 

       setTimeout(function() { 

        fnVideoOverlayOff(); 

       }, 10000); 

       var clickCount = 0; 

       if(jQuery.cookie('clickCount') == 2) { 

        fnRateOverlayOn(); 

        jQuery('#video, .video-closebtn').css('display', 'none'); 

       } 
      } 
     } 
    }); 

我想幹掉fnVideoOverlayOff();如果單擊重播按鈕

回答

2

存儲對setTimeout的引用,並在您想阻止其完成時調用clearTimeout()

fnVideoOverlayOffTimer = setTimeout(... 

// and later on when you want to "kill" it, 

clearTimeout(fnVideoOverlayOffTimer);` 

理想情況下,你會宣稱fnVideoOverlayOffTimer的地方,以保持它關閉全球範圍內,但這是可選的。