zoukankan      html  css  js  c++  java
  • JS获取事件源对象

    发现问题:

    1. 在复杂事件处理过程中,很可能会丢失event事件对象,特别是IE和FireFox两大浏览器,这个时候要捕获事件源就非常困难……
    2. 如果在事件处理过程中,需要不断地传递event事件对象作为参数,这是一个非常痛苦的事情……

    解决问题:

    1. 使用caller函数可以获取事件堆栈,通过简单分析来获取事件源对象,彻底解决事件源获取问题。
    2. 同时也解决所有浏览器兼容问题。亲测如下语句支持绝大部分浏览器(Chrome/FireFox/IE/Safari/Opera)

    Javascript源代码:

    //获取事件源的ID
    function getTarget() {
        var evt = getEvent();
        var eventFrom = evt.target || evt.srcElement;
        if(eventFrom.nodeName == "OPTION") {
            eventFrom = eventFrom.parentElement;
        }
        return eventFrom.id;
    }
    
    
    //获取事件源
    function getEvent() {
    if (typeof(event) != "undefined" || window.event) return event || window.event;
    func = getEvent.caller;
    while (func != null) {
    var arg0 = func.arguments[0];
    if (arg0) { if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } }
    func = func.caller;
    }
    return null;
    }
  • 相关阅读:
    Vue.js进阶知识点总结
    测试初学
    gitee简单命令使用
    Ubuntu学习之alias命令
    Python turtle.right与turtle.setheading的区别
    Python-对Pcap文件进行处理,获取指定TCP流
    第八次作业
    第七次作业
    第八周作业
    第七周作业
  • 原文地址:https://www.cnblogs.com/globalwatch/p/3337125.html
Copyright © 2011-2022 走看看