怎么把 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();
            }
        }
    }
阅读 2k
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后的函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题