Javascript 如何将多个类似功能合并为一个功能?

Javascript 如何将多个类似功能合并为一个功能?,javascript,api,youtube,Javascript,Api,Youtube,我被一段JavaScript代码卡住了,它在Youtube API上应用了一个事件。目标是当您单击相应的按钮时,视频向后移动5秒、10秒或30秒,或向前移动5秒、10秒或30秒 我的问题是,我有六个类似的函数,但没有相同的时间值。(在本例中,我只使用了两个函数:rewind5()备份5秒,而rewind10()备份10秒) 我正在寻找一个慈善的灵魂,可以帮助我将这两个函数(rewind5()和rewind10())组合成一个函数。一旦有了正确的结构,我就可以使用单个函数创建其他四个函数 我的JS

我被一段JavaScript代码卡住了,它在Youtube API上应用了一个事件。目标是当您单击相应的按钮时,视频向后移动5秒、10秒或30秒,或向前移动5秒、10秒或30秒

我的问题是,我有六个类似的函数,但没有相同的时间值。(在本例中,我只使用了两个函数:
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你将负数传递到函数以倒带,将正数传递到函数以前进惊人!非常感谢:)