var audio = new Audio();
audio.onended = function(e){ console.log('end 1');
}
audio.onended = function(e){ console.log('end 2');
}
上面代码很只会输出end 2,要怎么才能做到能输出end 1 和 end 2?
我自己想了一种方法
bind(handler, cb){
!m && (m = []);
!m[handler] && (m[handler] = []);
m[handler].push(cb);
}
bind('ended', function(e){ console.log('1');
});
bind('ended', function(e){ console.log('2');
});var audio = new Audio();
audio.onended = (e) => { for (var k in m['ended']){
m['ended'][k](e);
}
}
大概就是这样,用数组保存,然后audio方法循环调用
但是我就感觉实现的方式不够优
希望各位不吝赐教
Your Answer
1 answers
var components = function(){
var cache = {};return { set: function(type, handler){ cache[type] = cache[type] || []; cache[type].push(handler); }, get: function(type){ return [].concat(cache[type] || [], cache["*"] || []); }}
}思路非常正确,我的组件就是这么写的,需要执行时用get获取然后循环执行
Hot tools Tags
Hot Questions
How to pass an array into a SQL Server stored procedure
2026-01-31 22:24:05
What to do with mysqli problems? Errors like mysqli_fetch_array(): Argument #1 must be of type mysqli_result and such
2026-01-31 22:02:53
Convert a JavaScript string in dot notation into an object reference
2026-01-31 21:22:07
MySQL error #2014 - Commands out of sync; you can't run this command now [closed]
2026-01-31 21:01:19
How do I format a date in JavaScript?
2026-01-31 20:43:18
Popular tool
vc9-vc14 (32+64 bit) runtime library collection (link below)
Download the collection of runtime libraries required for phpStudy installation
VC9 32-bit
VC9 32-bit phpstudy integrated installation environment runtime library
PHP programmer toolbox full version
Programmer Toolbox v1.0 PHP Integrated Environment
VC11 32-bit
VC11 32-bit phpstudy integrated installation environment runtime library
SublimeText3 Chinese version
Chinese version, very easy to use
Hot Topics
Douyin level price list 1-75
20528
7
20528
7
wifi shows no ip assigned
13637
4
13637
4
Hot Article
What should I do if I can't always get the spot? Ouyitun Bibao multi-currency rotation and rebalancing strategy
2026-04-04
By DDD
Is the Martingale strategy effective? Detailed explanation of Ouyi DCA robot parameter setting
2026-04-03
By DDD
How to run a Python script_Detailed explanation of various ways to run a Python script and command line operations
2026-04-03
By DDD
How to use Nested Sequences in Premiere? (Project Organization)
2026-04-04
By 下次还敢
7 Best Thunderbolt 4 Cables: Cables That Roar
2026-04-05
By DDD






