jQuery匿名vs命名函数语法

时间:2017-06-19 21:33:47

标签: jquery function anonymous named

当按下按钮时,此代码可用于淡化和循环音频元素:

$("#loop").click(function(){
    var tone = document.getElementById("testTone");
    tone.play();
    $("#testTone").animate({volume: 0}, 1900);
    setInterval(function(){
        tone.currentTime = 0;
        tone.volume = 1;
        tone.play();
        $("#testTone").animate({volume: 0}, 1900);
    },2000)
});

但是,当我命名该功能时,它会在页面加载时立即调用,而无需按下按钮。

function loopAudio(target){
    var tone = document.getElementById(target);
    tone.play();
    $("#"+target).animate({volume: 0}, 1900);
    setInterval(function(){
        tone.currentTime = 0;
        tone.volume = 1;
        tone.play();
        $("#"+target).animate({volume: 0}, 1900);
    },2000)
};
$("#loop").click(loopAudio("testTone"));

为什么呢?什么是调用这个命名函数的正确方法?

编辑: 由于传递参数会调用函数,传递参数的好方法是什么?

1 个答案:

答案 0 :(得分:0)

你试过了吗?

$("#loop").click(function(){
  loopAudio("testTone");
});