JavaScript中本来是不支持事件的追加和移除的,但是我们可以通过自己的编写代码来实现。这用到了闭包
那闭包是什么?
闭包就是内部函数用到了外部函数的参数或变量
外部函数的返回值是内部函数的调用
接下来是代码
var eventHelper = (function () {
var kv = {};
return {
add: function (name, func) {
kv[name] = func;
window.onload = function () {
for (var k in kv) {
kv[k]();
}
};
},
remove: function (name) {
for (var k in kv) {
if (k == name) {
delete kv[name];
}
}
}
};
})();
大家可以举例子试一下
eventHelper.add("f1", function () {
alert("第一个方法");
});
eventHelper.add("f2", function () {
alert("第二个方法");
});
eventHelper.remove("f1");