UNPKG

clay-core

Version:

Provide a more friendly web-side drawing interface!

57 lines (45 loc) 1.51 kB
_clay_prototype.bind = function (eventType, callback) { var flag; if (window.attachEvent) for (flag = 0; flag < this.length; flag++) // 后绑定的先执行 this[flag].attachEvent("on" + eventType, callback); else for (flag = 0; flag < this.length; flag++) // 捕获 this[flag].addEventListener(eventType, callback, false); return this; }; _clay_prototype.trigger = function (eventType) { var flag, event; //创建event的对象实例。 if (document.createEventObject) { // IE浏览器支持fireEvent方法 event = document.createEventObject(); for (flag = 0; flag < this.length; flag++) { this[flag].fireEvent('on' + eventType, event); } } // 其他标准浏览器使用dispatchEvent方法 else { event = document.createEvent('HTMLEvents'); // 3个参数:事件类型,是否冒泡,是否阻止浏览器的默认行为 event.initEvent(eventType, true, false); for (flag = 0; flag < this.length; flag++) { this[flag].dispatchEvent(event); } } return this; }; /* ************************************ * 事件相关计算方法 */ // 获取鼠标相对特定元素左上角位置 _clay_prototype.position = function (event) { var bounding = this[0].getBoundingClientRect(); return { "x": event.clientX - bounding.left, "y": event.clientY - bounding.top }; };