search
  • Sign In
  • Sign Up
Password reset successful

Follow the proiects vou are interested in andi aet the latestnews about them taster

1 answers
Q&A JavaScript 如何重复绑定问题?
JavaScript 如何重复绑定问题?
巴扎黑 2016-11-08 15:52:39 Views 835

0
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
submit

1 answers
0
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获取然后循环执行


2016-11-08 15:53:16

submit

Popular tool

vc9-vc14 (32+64 bit) runtime library collection (link below)

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

VC9 32-bit phpstudy integrated installation environment runtime library

PHP programmer toolbox full version

PHP programmer toolbox full version

Programmer Toolbox v1.0 PHP Integrated Environment

VC11 32-bit

VC11 32-bit

VC11 32-bit phpstudy integrated installation environment runtime library

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use