Jquery 如何正确地终止函数
我有一个视频播放器,它可以在点击链接时打开并播放,在观看两个视频后,会出现一个表格,允许您对所提供的信息进行评分 我遇到的问题是,视频完成后会出现一个重播按钮。我现在有一个setTimeout,它会删除视频,然后它的覆盖会运行rate form函数。但是,如果单击了replay按钮,则setTimeout仍在运行,并且在回放视频的中途,该函数将运行。这是我的密码: 删除视频覆盖Jquery 如何正确地终止函数,jquery,function,jwplayer,die,Jquery,Function,Jwplayer,Die,我有一个视频播放器,它可以在点击链接时打开并播放,在观看两个视频后,会出现一个表格,允许您对所提供的信息进行评分 我遇到的问题是,视频完成后会出现一个重播按钮。我现在有一个setTimeout,它会删除视频,然后它的覆盖会运行rate form函数。但是,如果单击了replay按钮,则setTimeout仍在运行,并且在回放视频的中途,该函数将运行。这是我的密码: 删除视频覆盖 fnVideoOverlayOff = function () { jQuery('#video, #blo
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()如果单击了replay按钮存储对setTimeout的引用,并在希望阻止其完成时调用
clearTimeout()
fnVideoOverlayOffTimer = setTimeout(...
// and later on when you want to "kill" it,
clearTimeout(fnVideoOverlayOffTimer);`
理想情况下,您可以在某个地方声明fnVideoOverlayOffTimer
,以使其远离全局范围,但这是可选的