扫码关注官方订阅号
认证0级讲师
你是问事件传播机制,还是EventEmitter这个工具本身?
EventEmitter
如果是问工具,那还真有一个(但不是jquery提供的),看EventEmitter
jquery
如果是问事件传播机制,那这也算啊:
//创建一个window对象上的事件监听,监听hello事件 window.addEventListener('hello', function(e){ console.log(e); }, false); //创建一个Event实例,事件名:hello var e = new Event('hello'); //在window对象上触发这个事件 window.dispatchEvent(e);
自己实现一个也没有多难吧……
function EventDispatcher() { this.listeners = {}; } EventDispatcher.prototype = { on: function(type, listener) { if (!this.listeners[type]) { this.listeners[type] = []; } this.listeners[type].push(listener); }, emit: function(type) { var listeners = this.listeners[type]; var args = Array.prototype.slice.call(arguments); args.shift(); if (typeof window.console !== "undefined") { window.console.info("on\t" + type + "\t" + args.join(" , ")); } if (listeners) { for (var i = 0, len = listeners.length; i < len; i++) { listeners[i].apply(this, args); } } }, off: function(type) { delete this.listeners[type]; } };
然后browserify里你可以直接var EventDispatcher = require("events");,它能提供一个功能差不多的用于前端编译。源码见此。
var EventDispatcher = require("events");
jQuery有啊 $.event.trigger('eventname')
jQuery 的 on、off、trigger 就是你要的
也有一些已经实现好的 EventEmitter
如果你用了 webpack ,还可以直接使用 nodejs 的 event
自己实现
EventTarget
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你是问事件传播机制,还是
EventEmitter这个工具本身?如果是问工具,那还真有一个(但不是
jquery提供的),看EventEmitter如果是问事件传播机制,那这也算啊:
自己实现一个也没有多难吧……
然后browserify里你可以直接
var EventDispatcher = require("events");,它能提供一个功能差不多的用于前端编译。源码见此。jQuery有啊 $.event.trigger('eventname')
jQuery 的 on、off、trigger 就是你要的
也有一些已经实现好的 EventEmitter
如果你用了 webpack ,还可以直接使用 nodejs 的 event
自己实现
EventTarget