jQuery 匿名函数语法与命名函数语法
jQuery anonymous vs named function syntax
此代码用于在按下按钮时淡入淡出并循环播放音频元素:
$("#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"));
为什么?调用这个命名函数的正确方法是什么?
编辑:
由于传递参数调用函数,传递参数的良好变通策略是什么?
你试过了吗:
$("#loop").click(function(){
loopAudio("testTone");
});
此代码用于在按下按钮时淡入淡出并循环播放音频元素:
$("#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"));
为什么?调用这个命名函数的正确方法是什么?
编辑: 由于传递参数调用函数,传递参数的良好变通策略是什么?
你试过了吗:
$("#loop").click(function(){
loopAudio("testTone");
});