事件监听器内的Javascript回调
Javascript callback within event listener
我目前正在尝试实现一个系统,其中回调是从事件侦听器内触发的(下面的代码)。当我运行代码时,我得到错误"回调不是一个函数",我认为这是因为变量回调不是由事件侦听器定义的。
function playSound(no, callback) {
var noOfSounds = sound().length;
if(no == "random" || no == undefined) {
act("There are "+noOfSounds+" Sounds");
var randomNo = Math.floor(Math.random() * noOfSounds);
act("Will use no."+randomNo);
playSound(randomNo);
} else {
sound()[no].addEventListener("ended", function() {
callback();
});
sound()[no].play();
}}
我认为你的问题是你调用函数的方式。如果我看第10行你写的是
playSound(randomNo)
应该是
playSound(randomNo, function(){
//code to execute in callback
});
这是因为您正在调用尝试使用回调,这是一个函数,应该在调用方法时添加到输入参数
相关文章:
- JavaScript回调函数
- 如何在javascript回调函数中返回多个变量
- Google Data API上的OOP Javascript回调方法
- JavaScript回调函数和Google Feed API
- 行上的Primefaces数据表选择javascript回调
- 使用jasmine测试JavaScript回调函数
- 当页面中的某些脚本已经执行时,javascript回调
- 性能惩罚JavaScript回调函数
- JavaScript回调问题
- 需要Javascript回调ajax解释
- 未通过单击按钮调用JavaScript回调
- Google+登录JavaScript回调问题
- 在对象内完成ajax调用后触发Javascript回调
- 独立线程上的Javascript回调函数
- 循环函数(Javascript回调帮助)
- 使用JavaScript回调函数了解变量作用域和闭包
- 带有参数的Javascript回调函数
- 带有数据库的Javascript回调
- Node.js/express,javascript回调函数未执行
- javascript回调如何知道它们的参数