Javascript 如何将多个类似功能合并为一个功能?
我被一段JavaScript代码卡住了,它在Youtube API上应用了一个事件。目标是当您单击相应的按钮时,视频向后移动5秒、10秒或30秒,或向前移动5秒、10秒或30秒 我的问题是,我有六个类似的函数,但没有相同的时间值。(在本例中,我只使用了两个函数:Javascript 如何将多个类似功能合并为一个功能?,javascript,api,youtube,Javascript,Api,Youtube,我被一段JavaScript代码卡住了,它在Youtube API上应用了一个事件。目标是当您单击相应的按钮时,视频向后移动5秒、10秒或30秒,或向前移动5秒、10秒或30秒 我的问题是,我有六个类似的函数,但没有相同的时间值。(在本例中,我只使用了两个函数:rewind5()备份5秒,而rewind10()备份10秒) 我正在寻找一个慈善的灵魂,可以帮助我将这两个函数(rewind5()和rewind10())组合成一个函数。一旦有了正确的结构,我就可以使用单个函数创建其他四个函数 我的JS
rewind5()
备份5秒,而rewind10()
备份10秒)
我正在寻找一个慈善的灵魂,可以帮助我将这两个函数(rewind5()
和rewind10()
)组合成一个函数。一旦有了正确的结构,我就可以使用单个函数创建其他四个函数
我的JS文件:
// Rewind 5s
function onPlayerReady(event){
if(player.getPlayerState()===1 || player.getPlayerState()===2){
$('#s5back').prop('disabled', false);
$( '#s5back' ).click(function() {
rewind5();
});
} else {
$('#s5back').prop('disabled', true);
}
}
function rewind5() {
var currentTime = player.getCurrentTime();
player.seekTo(currentTime - 5, true);
player.playVideo();
};
// Rewind 10s
function onPlayerReady(event){
if(player.getPlayerState()===1 || player.getPlayerState()===2){
$('#s10back').prop('disabled', false);
$( '#s10back' ).click(function() {
rewind10();
});
} else {
$('#s10back').prop('disabled', true);
}
}
function rewind10(){
var currentTime = player.getCurrentTime();
player.seekTo(currentTime - 10, true);
player.playVideo();
};
我的HTML文件:
<div id="video-placeholder"></div>
<script type="text/javascript">
var player,
time_update_interval = 0;
function onYouTubeIframeAPIReady() {
player = new YT.Player('video-placeholder', {
width: '100%',
height: '625px',
videoId: 'ID URL YOUTUBE',
playerVars: {
color: 'white',
controls: 0,
rel: 0,
showinfo: 0
},
events: {
onReady: initialize,
onStateChange: onPlayerReady
}
});
}
</script>
var player,
时间更新间隔=0;
函数onyoutubeiframeapiredy(){
播放器=新的YT.player('视频占位符'{
宽度:“100%”,
高度:'625px',
videoId:“ID URL YOUTUBE”,
playerVars:{
颜色:'白色',
控件:0,
rel:0,
showinfo:0
},
活动:{
onReady:初始化,
onStateChange:onPlayerReady
}
});
}
为什么不只使用一个seekBy
功能,并将所需的倒带秒数传递给它
function seekBy(secs){
var currentTime = player.getCurrentTime();
player.seekTo(currentTime + secs, true);
player.playVideo();
}
例如,使用
$('#s10back').click(function() {
seekBy(-10);
});
或者5秒,或者30秒,或者60秒。若要继续,请传递一个正数:
$('#s10forward').click(function() {
seekBy(10);
});
当然,只要给它一个肯定或否定的论点。最好将其重命名为其他名称,而不是
倒带
,然后你写答案的速度比我快:)@smilile你将负数传递到函数以倒带,将正数传递到函数以前进惊人!非常感谢:)