作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写自己的事件发射器。之前写过一些,但是我想写一个像Node和其他系统一样的on
和off
风格的。我一直在努力理解如何使用 off
来移除事件发射器的监听器。这是因为调用 on
时,我看不到如何为该监听器提供或生成唯一的 id
。
事件系统
class EventSystem {
constructor(sender){
this.sender = sender;
this.events = {};
return this;
}
create(name){
return this.events[name] = { callbacks : [] };
}
on(name, callback){
var event = this.events[name];
if(!isDefined(event))
event = this.create(name);
event.callbacks.push(callback);
}
off(name){
}
emit(){
var event = this.events[arguments[0]];
if(isDefined(event)){
var args = arguments.slice(1, arguments.length);
for(var i = 0; i < event.callbacks.length; i++){
event.callbacks[i](this.sender, args);
}
}
}
}
一些类
class Foo {
constructor(){
this.evs = new EventSystem(this);
return this;
}
do(){
this.evs.emit('do', arg1, arg2, arg3);
}
}
var foo = new Foo();
foo.on('do', function(sender, arg1, arg2){
console.log(arg1);
});
foo.do();
foo.off('do');
如何在使用 .on
时分配某种 ID,以便我可以使用 .off
?
最佳答案
您是否正在尝试像 Jquery 中那样实现命名空间功能?如下图
$("#element").on("click.myNamespace", function() {
console.log("doSomething");
});
$("#element").off("click.myNamespace");
关于javascript - 将事件附加到事件发射器和从中移除事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37364850/
我正在做一个项目,我的 android 在这个项目中作为一个网络服务器工作;输入带端口号的 IP 地址,打开 Web 界面,用户可以将文件上传到手机。我想在 Web 界面上显示一些图片,以便我们的界面
我是一名优秀的程序员,十分优秀!