亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

javascript 事件處理示例分享

2024-05-06 16:13:20
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了javascript 事件處理示例分享,需要的朋友可以參考下
 
 

廢話少說,直接奉上示例代碼:

 

復制代碼代碼如下:

<script type="text/javascript">
    function EventUtil() {
        var _self = this;
        ///添加事件
        var addEvent = (function () {
            if (document.addEventListener) {
                return function (el, type, fn) {
                    el.addEventListener(type, fn, false);
                }
            } else {
                return function (el, type, fn) {
                    el.attachEvent("on" + type, function () {
                        return fn.call(el, window.event);
                    });
                }
            }
        })();
        ///添加屬性改變事件
        var addPropertyChangeEvent = function (obj, fn) {
            if (window.ActiveXObject) {
                obj.onpropertychange = fn;
            } else {
                obj.addEventListener("input", fn, false);
            }
        }
        //移除事件
        var removeEvent = function (obj, type, fn) {
            if (obj.removeEventListener) {
                obj.removeEventListener(type, fn, false);
            } else if (obj.detachEvent) {
                obj.detachEvent("on" + type, obj["on" + type + fn]);
                obj["on" + type + fn] = null;
            }
        }
        //加載事件
        var loadEvent = function (fn) {
            var oldonload = window.onload;
            if (typeof oldonload != "function") {
                window.onload = fn;
            } else {
                window.onload = function () {
                    oldonload();
                    fn();
                }
            }
        }
        //阻止事件
        var stopEvent = function (e) {
            e = e || window.event;
            if (e.preventDefault) {
                e.preventDefault();
                e.stopPropagation();
            } else {
                e.returnValue = false;
                e.cancelBubble = true;
            }
        }
        //如果僅僅是阻止事件冒泡
        var stopPropagation = function (e) {
            e = e || window.event;
            if (!+"/v1") {
                e.cancelBubble = true;
            } else {
                e.stopPropagation();
            }
        }
        //取得事件源對象
        var getEvent1 = function (e) {
            e = e || window.event;
            var obj = e.srcElement ? e.srcElement : e.target;
            return obj;
        }
        //取得事件源對象
        var getEvent2 = function (e) {
            if (window.event) return window.event;
            var c = getEvent2.caller;
            while (c.caller) {
                c = c.caller;
            }
            return c.arguments[0];
        }
        //或者這個功能更強大
        var getEvent3 = function (e) {
            var e = e || window.event;
            if (!e) {
                var c = this.getEvent3.caller;
                while (c) {
                    e = c.arguments[0];
                    if (e && (Event == e.constructor || MouseEvent == e.constructor)) {
                        break;
                    }
                    c = c.caller;
                }
            }
            var target = e.srcElement ? e.srcElement : e.target,
                    currentN = target.nodeName.toLowerCase(),
                    parentN = target.parentNode.nodeName.toLowerCase(),
                    grandN = target.parentNode.parentNode.nodeName.toLowerCase();
            return [e, target, currentN, parentN, grandN];
        }

 

        _self.addEvent = addEvent;
        _self.addPropertyChangeEvent = addPropertyChangeEvent;
        _self.removeEvent = removeEvent;
        _self.loadEvent = loadEvent;
        _self.stopEvent = stopEvent;
        _self.stopPropagation = stopPropagation;
        _self.getEvent1 = getEvent1;
        _self.getEvent2 = getEvent2;
        _self.getEvent3 = getEvent3;
    }
    var eventUtil = new EventUtil();
    eventUtil.loadEvent(function () {
        eventUtil.addEvent(document, "click", function (e) {
            alert(eventUtil.getEvent3(e));
        });
        eventUtil.addPropertyChangeEvent(document,function(e){
            alert(eventUtil.getEvent3(e));
        });
    });
</script>

 

javascript事件處理分為三個階段:捕獲 - 處理 - 起泡。

以點擊按鈕為例:
捕獲階段:由外層到內層,首先調用給Window注冊的click捕獲階段監聽方法,然后document、body、一層層的父節點,一直到按鈕本身。

處理階段:調用按鈕本身的click監聽方法。

起泡階段:從按鈕開始,從內層到外層,依次調用各級父節點的起泡階段監聽方法,直到Window。

但是,對于IE8及更低版本IE,不支持捕獲階段,因此捕獲階段的事件監聽目前尚不通用。

通常的事件處理方法形式為:

 

復制代碼代碼如下:

function eventHandler(e) {  
    e = e || window.event;  
    var target = e.target || e.srcElement;  
    ... ...  
      
}  

 

e為事件對象,當事件觸發時,作為參數傳進來,但對于IE8及更低版本IE不適用,只能通過全局的event變量訪問,好在不會出現同時處理兩個事件的情況。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲免费视频网站| 国产有码在线一区二区视频| 97在线看福利| 欧美电影电视剧在线观看| 亚洲免费伊人电影在线观看av| 欧美激情免费视频| 欧美孕妇孕交黑巨大网站| 国产精品白丝av嫩草影院| 国产成人精品a视频一区www| 欧美一级电影久久| 亚洲天天在线日亚洲洲精| 尤物九九久久国产精品的分类| 亚洲日本成人网| 精品久久香蕉国产线看观看亚洲| 色婷婷综合久久久久| 国产精品免费看久久久香蕉| 欧美激情亚洲精品| 国产成人精品电影久久久| 精品国产拍在线观看| 国产精品你懂得| 国产日韩综合一区二区性色av| 91精品国产精品| 亚洲国产精品小视频| 久久中文精品视频| 亚洲电影免费观看| 亚洲精品美女网站| 日本三级韩国三级久久| 日韩不卡在线观看| 国产成人精品视频在线| 欧美激情xxxx性bbbb| 日韩高清av一区二区三区| 麻豆国产精品va在线观看不卡| 亚洲福利视频网站| 久久影院资源站| 久久影视免费观看| 国产精品成人一区二区| 精品久久久精品| 日韩在线观看电影| 久久天天躁夜夜躁狠狠躁2022| 亚洲人成网7777777国产| 国产在线视频欧美| 久久99青青精品免费观看| 久久久国产精彩视频美女艺术照福利| 国产精品999999| 欧美成人午夜激情在线| 国产一区二区三区三区在线观看| 欧美裸体xxxx极品少妇软件| 欧美视频裸体精品| 国产成人短视频| 国产日韩在线观看av| 国产日韩欧美电影在线观看| 国产精品美女久久久久av超清| 欧美国产乱视频| 亚洲欧美中文字幕在线一区| 亚洲国产精品女人久久久| 亚洲免费精彩视频| 欧美午夜宅男影院在线观看| 精品中文字幕久久久久久| 欧美成人手机在线| 亚洲精品资源美女情侣酒店| 国产一区二区三区直播精品电影| 热门国产精品亚洲第一区在线| 91精品一区二区| 成人春色激情网| 中文字幕在线视频日韩| 亚洲精美色品网站| 欧美性高潮在线| 日韩成人中文字幕在线观看| 538国产精品一区二区免费视频| 亚洲欧美成人在线| 亚洲成人黄色网| 最近中文字幕2019免费| 狠狠久久五月精品中文字幕| 国产成人aa精品一区在线播放| 欧美限制级电影在线观看| 一区二区三区四区精品| 一区二区三区视频免费| 亚洲一区二区三区xxx视频| 精品久久久久久久久久久久久久| 伊人久久大香线蕉av一区二区| 久久久久亚洲精品成人网小说| 精品亚洲一区二区三区在线观看| 欧美成人精品在线视频| 91美女福利视频高清| 国产成人精品一区二区三区| 久久免费国产精品1| 日韩av手机在线看| 欧美大秀在线观看| 国产999精品久久久影片官网| 中文字幕久精品免费视频| 欧美性色xo影院| 亚洲精品日韩av| 日韩中文有码在线视频| 欧美精品日韩www.p站| 国产精品av电影| 亚洲精品美女在线观看| 91免费看国产| 欧美又大又粗又长| 91成人精品网站| 日韩在线一区二区三区免费视频| 久久久久久香蕉网| 国产成人一区二区在线| 久久久免费高清电视剧观看| 久久99久久久久久久噜噜| 91在线观看免费高清完整版在线观看| 欧美丝袜一区二区三区| 国产精品旅馆在线| 欧美限制级电影在线观看| 亚洲a级在线观看| 欧美色另类天堂2015| 91在线观看免费高清完整版在线观看| 91九色精品视频| 伦伦影院午夜日韩欧美限制| 欧美成人免费全部| 美日韩在线视频| 欧美在线视频观看| 国产精品第1页| 国产精品永久免费在线| 久久中文字幕在线| 精品久久久精品| 久久精品人人做人人爽| 国产精品一区二区三区久久| 国产精品久久久久久久久久久久久| 91黄色8090| 亚洲欧美另类国产| 国产精品欧美激情在线播放| 欧美日韩亚洲高清| 日韩精品免费一线在线观看| 91高清视频在线免费观看| 久久久久久国产精品三级玉女聊斋| 国产在线不卡精品| 国产在线不卡精品| 91精品国产自产在线| 一区二区三区日韩在线| 亚洲性线免费观看视频成熟| 2019中文字幕全在线观看| 久久伊人精品天天| 国产在线视频欧美| 久久精品中文字幕免费mv| 日韩高清免费观看| 97人人模人人爽人人喊中文字| 亚洲国产成人久久综合一区| 国产精品丝袜一区二区三区| 国产一区二区三区在线观看网站| 日韩成人在线播放| 日韩精品视频在线播放| 亚洲人成五月天| 欧美人与性动交| 成人网址在线观看| 亚洲人成网站在线播| 97在线精品视频| 日本人成精品视频在线| 欧美日韩美女在线| 日韩一区二区在线视频| 日韩免费观看视频| 亚洲国产精品悠悠久久琪琪| 日本亚洲欧美成人| 国产一区二区丝袜| 久久国产精品影片| 18性欧美xxxⅹ性满足| 精品高清美女精品国产区| 亚洲欧美日韩国产成人| 欧美中文字幕在线| 韩国三级日本三级少妇99|