core 目录
Events.js
// 解析 types,交由内部函数 _on(type, fn, context)去添加事件
on(types, fn, context),
// 解析 types,交由内部函数 _off(type, fn, context)去移除事件
off(types, fn, context)
// 添加事件
_on: function (type, fn, context) {
this._events = this._events || {}; // this._events 对象初始化
// 主要步骤
var newListener = {fn: fn, ctx: context}
this._events[type].push(newListener)
},
// 移除事件
_off: function (type, fn, context) {
// 主要步骤: 找到 fn 并移除
for (i = 0, len = listeners.length; i < len; i++) {
var l = listeners[i];
if (l.ctx !== context) { continue; }
if (l.fn === fn) {
// ...
listeners.splice(i, 1);
return;
}
}
},
// 触发指定监听事件
fire: function (type, data, propagate) {
// 主要步骤
for (var i = 0, len = listeners.length; i < len; i++) {
var l = listeners[i];
l.fn.call(l.ctx || this, event);
}
if (propagate) {
this._propagateEvent(event);
}
return this;
},
// 判断指定事件是否挂载监听
listens(type, propagate)
// 添加事件监听,执行一次之后便移除
once(types, fn, context)
// 添加事件父级
addEventParent(obj)
// 删除事件父级
removeEventParent(obj)
// 事件传播[触发父级的指定事件监听]
_propagateEvent(e)
dom 目录
实现对dom的操作
geo 目录
针对地理位置点
geometry 目录
针对像素位置点