• 首页
  • ASPCMS
  • DEDECMS
  • DuxCms
  • 工具下载
  • SEO知识
  • WEB前端开发
  • 当前位置:首页 > WEB前端开发 > 特效代码 >
  • 特效代码
  • 探秘JavaScript框架-2.4事件操作

  • 已有 人阅读此文  -  2015.04.11  -  特效代码  -  萤火星

2.4.1判断鼠标停留还是离开

JFAST.register("evt.isMouseLeaveOrEnter",
function(a) {
    return function(e, handler) {
        if (e.type != 'mouseout' && e.type != 'mouseover') return false;
        var reltg = e.relatedTarget ? e.relatedTarget: e.type == 'mouseout' ? e.toElement: e.fromElement;
        while (reltg && reltg != handler) reltg = reltg.parentNode;
        return (reltg != handler);
    }
});

2.4.2添加监听事件

JFAST.register("evt.addEvent",
function(a) {
    return function(el, type, listener, useCapture) {
        var el = $E(el);
        if (el == null) {
            return
        }
        if (typeof listener != "function") {
            return
        }
        type = type || "click";
        useCapture = useCapture ? useCapture: false;
        if (el.addEventListener) {
            el.addEventListener(type, listener, useCapture);
        } else {
            if (el.attachEvent) {
                el.attachEvent("on" + type, listener);
            } else {
                el["on" + type] = listener
            }
        }
        return true
    };
});

2.4.3取得Event对象

JFAST.register("evt.getEvent",
function(a) {
    if (a.IE) {
        return function() {
            return window.event
        }
    } else {
        return function() {
            if (window.event) {
                return window.event
            }
            var b = arguments.callee.caller;
            var a;
            var c = 0;
            while (b != null && c < 40) {
                a = b.arguments[0];
                if (a && (a.constructor == Event || a.constructor == MouseEvent)) {
                    return a
                }
                c++;
                b = b.caller
            }
            return a
        }
    }
});

2.4.4删除监听事件

JFAST.register("evt.removeEvent",
function(a) {
    return function(b, c, d, e) {
        var f = a.E(b);
        if (f == null) return ! 1;
        if (typeof d != "function") return ! 1;
        f.removeEventListener ? f.removeEventListener(c, d, e) : f.detachEvent ? f.detachEvent("on" + c, d) : f["on" + c] = null;
        return ! 0
    }
});

2.4.5停止冒泡

JFAST.register("evt.stopEvent",
function(a) {
    return function(c) {
        var b = c ? c: a.evt.getEvent();
        if (a.IE) {
            b.cancelBubble = true;
            b.returnValue = false
        } else {
            b.preventDefault();
            b.stopPropagation()
        }
        return false
    }
});

2.4.6统一Event属性

JFAST.register("evt.fixEvent",
function(a) {
    return function(event) {
        if (typeof event == "undefined") {
            event = window.event
        }
        if (!event.target) {
            event.target = event.srcElement;
            event.pageX = event.x;
            event.pageY = event.y
        }
        if (typeof event.layerX == "undefined") {
            event.layerX = event.offsetX
        }
        if (typeof a.layerY == "undefined") {
            event.layerY = event.offsetY
        }
        return event;
    }
});

2.4.7触发绑定事件

JFAST.register("evt.fireEvent",
function(a) {
    return function(c, d) {
        _el = a.E(c);
        if (a.IE) {
            _el.fireEvent("on" + d)
        } else {
            var b = document.createEvent("HTMLEvents");
            b.initEvent(d, true, true);
            _el.dispatchEvent(b)
        }
    }
});

返回目录页


如果本篇文章帮到了你,那么,请点击右侧的百度分享,让我们一起帮助更多的朋友!
  • 上一篇:探秘JavaScript框架-2.3文档操作和控制
  • 下一篇:探秘JavaScript框架-3.1AJAX操作
前端交流群
热门文章
  • 1探秘JavaScript框架
  • 2CSS3 Transition
  • 3探秘JavaScript框架-1.1创建JF对象
  • 4探秘JavaScript框架-2.2样式操作
  • 5WEB前端页面常用CSS简写优化技
推荐阅读
  • CSS3 Transition
ASPCMS | DEDECMS | DuxCms | 工具下载 | SEO知识 | WEB前端开发 | 百度地图
萤火星的经验分享!友情赞助!
鲁ICP备15006695号-1