开发者社区 问答 正文

怎么把 i 传到 pausePlay 函数里?

function controlAudio () {

    var audios=document.getElementsByTagName('audio');
    var buttons=document.getElementsByTagName('div');
    for (var i = 0; i < buttons.length; i++) {
        buttons[i].onclick=function  () {  //这里
            pausePlay();
        }
    }
    function pausePlay () {
        if (audios[i].paused) {
                audios[i].play();
            }
            else{
                audios[i].pause();
            }
        }
    }

展开
收起
a123456678 2016-03-13 09:40:50 1610 分享 版权
1 条回答
写回答
取消 提交回答
  • function controlAudio () {
    
        var audios=document.getElementsByTagName('audio');
        var buttons=document.getElementsByTagName('div');
        for (var i = 0; i < buttons.length; i++) {
            buttons[i].onclick=(function  (i) {  //这里
                pausePlay(i);
            })(i)
        }
        function pausePlay (i) {
            return function(){
            if (audios[i].paused) {
                    audios[i].play();
                }
                else{
                    audios[i].pause();
                }
            }
            
            }
        }

    这样,相当于事件点击绑定的是return后的函数

    2019-07-17 19:01:48
    赞同 展开评论
问答地址: