zoukankan      html  css  js  c++  java
  • javascript 事件冒泡的补充

    scroll在IE8-9中无法捕获,由于又不能冒泡,因此无法使用事件代理.它在FF下可以通过捕获来处理.

    focus与blur事件在IE下可以通过focusin与focusout事件来模拟,但对于那些不能非表单元素或链接或图片等一般元素,我们需要给它设置tabIndex,才能让它拥有捕获焦点或失去焦点的能力.在某些非常新的标准浏览器中,可以使用DOMFocusIn,DOMFocusOut来模拟,但这种不能使用onXXX调用的事件随时可能废弃,因此我也不会用它们来模拟.focus,blur的事件代理.

    scroll 只能用于两个DIV之间 或window中,这时要求存在滚动条.在IE中,不能冒泡也无法用捕获,在标准浏览器中冒泡情况也非常混乱,只重要的是要判定是否存在滚动条,因此也不打算支持其事件代理.

            //让IE与w3c支持focus与blur与select的代理
            "focus_focusin,blur_focusout,select_selectstart".replace(/\w+/g,function(types){
                types = types.split("_");
                events.special[  types[0] ]  = {
                    liveType: DOC.dispatchEvent ? types[0] : types[1],
                    livePhase:!!DOC.dispatchEvent,
                    liveSetup: function(node, type, _, phase){
                        enableFocusin(node);
                        dom.bind(node,type,function(e){
                            e = events.fix(e);
                            dom.log("让IE与w3c支持focus与blur与select的代理")
                            e.type = types[0];
                            events.handle.call(this,e);
                        },phase);
                    }
                }
            });
    
  • 相关阅读:
    .NET C# Tostring() format 格式化字符串大全
    国美秒杀器分享帐号
    .NET 调用JS:WebBrowser.Document.InvokeScript 方法抛出“指定的转换无效”异常的原因
    非接触式IC卡性能简介(M1)
    使用Tesseract (OCR)实现简单的验证码识别(C#)+窗体淡入淡出效果
    C# .NET entity下sqlite部署问题
    sqlite3自增key设定(创建自增字段)
    .NET在winform中使用UrlEncode进行字符串编码字母大写
    HttpWebRequest 二三事
    SQLite在字符串比较中的大小写问题
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/2060289.html
Copyright © 2011-2022 走看看