精华内容
下载资源
问答
  • 昨天面试问到这个问题,不是回答不上来,而是面试官问我哪个浏览器不支持事件捕获/冒泡。确实忘了,回来记忆,顺便把一些和事件流有关内容再梳理一遍。 事件冒泡: 从事件源朝父级一直到根元素(HTML)。当某个...

    昨天面试问到这个问题,不是回答不上来,而是面试官问我哪个浏览器不支持事件捕获/冒泡。确实忘了,回来记忆,顺便把一些和事件流有关的内容再梳理一遍。

    事件冒泡
    从事件源朝父级一直到根元素(HTML)。当某个元素的某类型事件被触发时,那么它的父元素同类型的事件也会被触发,一直触发到根源上;
    从具体的元素到不确定的元素。

    事件捕获
    从根元素(HTML)到事件源,当某个元素的某类型事件被触发时,先触发根元素的同类型事件,朝子一级触发,一直触发到事件源。
    从不确定的元素到具体的元素;

    事件流:就是事件的流向,先捕获,再到事件源,最后再冒泡,一共分三个阶段:捕获阶段,目标阶段,冒泡阶段。(W3C标准,当处于目标阶段时事件触发)

    ** 事件委托/代理**:
    由冒泡事件衍生出的事件委托机制,既然事件是冒泡传递的,那可以让某个父节点统一处理事件,通过判断事件的发生地(即事件产生的节点),然后做出相应的处理。就是将子元素的事件处理程序绑定到父类上,例如常见的ul>li> a列表标签的写法应用。

    在一些标准的浏览器中,如Chrome、Firefox等,支持这两种冒泡方式。而事实上,准确的说,是这两种方式的混合方式。因为W3C采取的就是这两种方式的结合:先从顶级节点开始,将事件向下传递至源节点,再从源节点冒泡至顶节点。

    而在IE及Opera(以下说的都是老版本的欧朋,新版本的欧朋经检测是支持事件捕获的)下,是不支持事件捕获的。而这个特点最明显体现在事件绑定函数上。

    IE、Opera的事件绑定函数是attachEvent,而Chrome等浏览器则是addEventListener,而后者比前者的参数多了一个——这个参数是一个布尔值,这个布尔值由用户决定,用户若设为true,则该绑定事件以事件捕获的形式参与,若为false则以事件冒泡的形式参与。

    阻止冒泡

    div.addEventListener("click',function(e){
    	e.stopPropagation();
    },true)
    // 这样div的父元素就接收不到事件了
    

    stopPropagation()方法既可以阻止事件冒泡,也可以阻止事件捕获,也可以阻止处于目标阶段。

    无论事件流中只有捕获还是事件流中只有冒泡,还是说是事件流中既有捕获还有冒泡,event.stopPropagation()都可以阻止事件流的传播顺序。只要是event.stopPropagation()加在哪里,则到哪里就停止运行,停止捕获或者停止冒泡,简单说是,仍然按照正常的混合机制流程走,只是哪里有e.stopPropagation()则这个流程到哪里就停止了。

    stopImmediatePropagation: 防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理(对当前节点第二次绑定事件时,不监听)
    stopPropagation:防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理

            e=e||window.event;
            if(e.stopPropagation){
                e.stopPropagation();//其它浏览器
            }else{
                e.cancelBubble=true;//IE浏览器
            }
    

    可以使用DOM3级新增事件stopImmediatePropagation()方法来阻止事件捕获,那么 stopImmediatePropagation() 和 stopPropagation()的区别在哪儿呢?
    后者只会阻止冒泡或者是捕获。 但是前者除此之外还会阻止该元素的其他事件发生,但是后者就不会阻止其他事件的发生(从而需要设置取消默认)。

    阻止默认事件

    有一些html元素默认的行为,比如说a标签,点击后有跳转动作;form表单中的submit类型的input有一个默认提交跳转事件;reset类型的input有重置表单行为。

     e.preventDefault();
    
    展开全文
  • qt 事件源码

    2013-05-04 17:59:57
    为了过滤某个组件上的事件,首先需要判断这个对象是哪个组件,然后判断这个事件的类型。例如,我不想让textEdit组件处理键盘事件,于是就首先找到这个组件,如果这个事件是键盘事件,则直接返回true,也就是过滤掉了...
  • 【javascript】事件小结

    热门讨论 2017-01-24 14:51:02
    前言 上一篇介绍了DOM,光有html是静态,要那些节点动起来干活,就要给他们... 添加,删除事件不是很难,语法都是固定,但是几个浏览器语法是不一样,区别需要记住。另外,传统添加事件中会出现覆盖现象

        

    前言

        上一篇介绍了DOM,光有html是静态的,要那些节点动起来干活,就要给他们添加事件。主要是了解一下事件都有哪些类型,如何添加,删除事件。

    事件进阶

    这里写图片描述
    理解:
        事件分为鼠标事件,键盘事件和HTML事件,对这些事件要熟悉,做项目的时候才知道有哪个事件。
        添加,删除事件不是很难,语法都是固定的,但是几个浏览器的语法是不一样的,区别需要记住。另外,传统添加事件中会出现覆盖的现象,而在w3c中addEventListener(‘load’,fn,false)中false指冒泡,可以执行冒泡的事件,不会覆盖。

    结语

        通过对事件的学习又稍微懂了一点,以后在写时间的时候应该就不会发怵了。前端的东西很零散,需要好好的整理,有一个整体思路,多看,多总结,向大牛学习。
        Thanks for you patience~~

    来自 http://write.blog.csdn.net/mdeditor

    展开全文
  • 就是我想知道点是数组的哪个,而不是像我点控件id是12335345这种 ``` public boolean onTouch(View V, MotionEvent e) { switch(e.getAction()){ case MotionEvent.ACTION_DOWN: x1=(int)e.getX(); ...
  • ---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流!...委托保存的不是实际值,而是保存对存储在托管堆中对象引用。委托特点: 1、委托类似于 C++ 函数指针,但它是类型

     ---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

    委托是希望能够调用一个函数,但是写程序的时候不用知道调用的是哪个函数,只要能传参数,这样我们只要取返回值就可以。委托保存的不是实际值,而是保存对存储在托管堆中的对象的引用。委托的特点:

    1、委托类似于 C++ 函数指针,但它是类型安全的。它与指针区别:用委托就可以指向任意的函数,哪怕是之前没定义的都可以

    2、委托允许将方法作为参数进行传递。

    3、委托可用于定义回调方法。

    4、委托可以链接在一起;例如,可以对一个事件调用多个方法。

    声明委托的方式:delegate 返回值类型 委托类型名(参数)
    C#代码:  delegate void StringProcess(string s);

    声明的委托是一种类型,就像int、Person一样,如果要用的话还要声明委托类型的变量
    声明委托类型变量的方式:StringProcess f1;
    将委托类型变量指向函数还可以简化成StringProcess sp = SayHello,编译器帮我们进行了new。但是不能sp=PrintIt(),因为这样就成了“执行PrintIt函数,并且将sp指向PrintIt的返回值”。
     和直接调用函数的区别:用委托就可以指向任意的函数,哪怕是之前没定义的都可以,而不使用受限于那几种。

     

    事件就是一个消息。在C#中称为事件,C#中处理事件是通过委托完成,必须先理解委托才能更好的理解事件。事件是一个特殊的委托类。事件的特点:

    1、发行者确定何时引发事件,订户确定执行何种操作来响应该事件。

    2、一个事件可以有多个订户。

    3、一个订户可处理来自多个发行者的多个事件。

    4、没有订户的事件永远不会被调用。

    5、事件通常用于通知用户操作(如:图形用户界面中的按钮单击或菜单选择操作)。

    6、如果一个事件有多个订户,当引发该事件时,会同步调用多个事件处理程序。

    7、要异步调用事件,请参见使用异步方式调用同步方法。

    8、可以利用事件同步线程

     

    委托和事件没有可比性,因为委托是类型,事件是对象。 

    ---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

    展开全文
  • Oracle是分不出来应该对哪个表进行更新 而INSTEAD OF 触发器实现了我们对视图DML需求,显示告诉告诉Oracle要更新哪个表 和其他类型触发器不同是,INSTEAD OF 触发器实际上并不是由某个事件触发 语法: ...
       于两张表以上关联起来的视图,Oracle是分不出来应该对哪个表进行更新
    而INSTEAD OF 触发器实现了我们对视图DML的需求,显示的告诉告诉Oracle要更新哪个表
    和其他类型触发器不同的是,INSTEAD OF 触发器实际上并不是由某个事件触发的

    语法:

    CREATE OR REPLACE TRIGGER trigger_name
    INSTEAD OF operation    --delete,update,insert,create and so on
    ON view_name
    FOR EACH ROW
    BEGIN
      ...
    END;

    因为对TRIGGER印象不太好,从未主动想去亲近她
    这里Think想强调的一点是,9i的文档有提到:
    "INSTEAD OF triggers defined in the view are dropped when a view is re-created"
    一贯以来的思维方式就是:如果修改了底层对象,那么重新编译上层的视图、触发器、存储过程等即可
    只要状态为 VALID 就视为没有问题
    然而,INSTEAD OF 触发器却无异于当头棒喝,原来Oracle还会有这样的脾气!
    下面用实验来证明这句话

    hr@ORCL> CREATE TABLE A (ID NUMBER(5),COL VARCHAR2(5));
    
    Table created.
    
    hr@ORCL> CREATE TABLE B (ID NUMBER(5),COL VARCHAR2(5));
    
    Table created.
    
    hr@ORCL> CREATE OR REPLACE VIEW V_AB AS
      2      SELECT A.ID,A.COL AS COLA,B.COL AS COLB
      3       FROM A,B
      4      WHERE A.ID=B.ID
      5      /
    
    View created.
    
    hr@ORCL> CREATE OR REPLACE TRIGGER TRG_V_AB
      2      INSTEAD OF INSERT ON V_AB
      3      FOR EACH ROW
      4      BEGIN
      5      INSERT INTO A(ID,COL)VALUES(:NEW.ID,:NEW.COLA);
      6      INSERT INTO B(ID,COL)VALUES(:NEW.ID,:NEW.COLB);
      7      END;
      8      /
    
    Trigger created.
    
    hr@ORCL> SELECT TRIGGER_NAME,TRIGGER_TYPE FROM USER_TRIGGERS;
    
    TRIGGER_NAME                   TRIGGER_TYPE
    ------------------------------ ----------------
    TRG_V_AB                       INSTEAD OF
    
          
    hr@ORCL> INSERT INTO V_AB VALUES(1,'AA','BB');
    
    1 row created.
    
    hr@ORCL> COMMIT;
    
    Commit complete.
    
    hr@ORCL> select * from a;
    
            ID COL
    ---------- -----
             1 AA
    
    hr@ORCL> select * from b;
    
            ID COL
    ---------- -----
             1 BB
    
    hr@ORCL> CREATE OR REPLACE VIEW  V_AB AS
      2      SELECT A.ID,B.COL AS COLA,A.COL AS COLB
      3       FROM A,B
      4      WHERE A.ID=B.ID
      5      /
    
    View created.
    
    hr@ORCL> INSERT INTO V_AB VALUES(1,'AA','BB');
    INSERT INTO V_AB VALUES(1,'AA','BB')
    *
    ERROR at line 1:
    ORA-01779: cannot modify a column which maps to a non key-preserved table
    
    
    hr@ORCL> SELECT TRIGGER_NAME,TRIGGER_TYPE FROM USER_TRIGGERS;
    
    no rows selected.

    注释:
    触发器,而且是行级触发器
    :OLD:指更新以前的字段值
    :new:指更新以后的字段值

    展开全文
  • Android数据存储

    2021-01-03 17:02:43
    通过Xml这个工具类去获取2、设置XmlSerializer序列化器参数3、开始写xml文档四、Xml解析1、声明一个pull解析器2、初始化解析器,设置解析哪个流,用什么编码3、获取解析文档的事件类型4、具体判断一下,解析到...
  • 委托类型声明中所描述的类型签名决定了哪个方法可用于创建委托实例,同时决定了调用的签名 为了创建委托实例,需要一个方法以及调用方法的目标 委托实例是不易变的 每个委托都包含一个调用列表---一个操作列表 ...
  • 我们建议您将应用程序用作体系结构中微前端主要类型。请参阅此说明以获取更多详细信息单spa包裹是与框架无关组件。它是一大堆功能,旨在由应用程序手动安装,而不必担心使用哪个框架来实现包裹或应用程序。包裹...
  • ASP.NET网页代码模型及生命周期

    热门讨论 2009-07-28 14:22:11
    Web应用实际上是没有状态,这就说明Web应用程序不自动指示序列中请求是否来自相同浏览器或客户端,也无法判断浏览器是否一直在浏览一个页面或者一个站点,也无法判断用户执行了哪个操作并统计用户喜好。...
  • 3.4 小结:基本数据类型—— Java中一切数据和运算基础 63 3.5 习题 65 第4章 Java中程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
  • 3.4 小结:基本数据类型—— Java中一切数据和运算基础 63 3.5 习题 65 第4章 Java中程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
  • 3.4 小结:基本数据类型—— Java中一切数据和运算基础 63 3.5 习题 65 第4章 Java中程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
  • 对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的...
  • 由于它查看两种类型的事件,所以客户必须通过查看掩码值来检查发生了哪个事件。所有数据都发出后,它会修改选择器配置,只在有可读取数据时才会报告。 import selectors import socket mysel = sele...
  • 我们知道,IIS可以忽略对链接虚拟目录是否存在检测,但是,却无法检测非ASP.NET支持文件扩展名链接(我们固然可以在IIS中将所有类型的扩展名都映射到ASP.NET解析器,但是,如果我们有设置IIS权限,为什么...
  • TouchScript模拟鼠标点击

    千次阅读 2019-08-20 14:20:32
    上一篇博客可以看到Unity自带EventSystem系统掌管了鼠标输入、触摸输入两大输入类型,并且可根据BaseRayCaster进行射线发射来判断鼠标点击在了哪个物体上,进而可以自定义点击事件响应方法(如下图)来完成一个...
  • 事情起因是这段看起来不像代码代码: <p><img alt="_20170825232240" src="https://user-images.githubusercontent.com/15126694/29723108-f958fe64-89f5-11e7-819e-38805929a3a3.png" /></p> 有兴趣...
  • //设置windowicon(这里我自定义了一下Windows窗口icon图标,因为实在觉得哪个小咖啡图标不好看 = =) Toolkit toolKit = getToolkit();//返回此窗体工具包 Image icon = toolKit.getImage(Client.class....
  • powerbuilder

    2013-11-21 17:11:48
    参数printjobnumber:用PrintOpen()函数打开打印作业号string:string类型,指定要打印文本x:integer类型,指定文本开始打印位置x坐标,以千分之一英寸为单位y:integer类型,指定文本开始打印位置y坐标,...
  • jQuery详细教程

    2013-04-25 14:16:42
    $(document).ready(function) 将函数绑定到文档就绪事件(当文档完成加载时) $(selector).click(function) 触发或将函数绑定到被选元素点击事件 $(selector).dblclick(function) 触发或将函数绑定到被选元素...
  • flash shiti

    2014-03-14 10:32:41
    27.以下不是符号Symbol可选的类型的是: A. Moeie Clip B. Button C. Effect D. Graphic 28.Flash查看(View)菜单中,Go To→Next表示? A. 打开当前作品的第一个场景 B. 打开当前作品的上一个场景 C. 打开...
  • 大话数据结构

    2019-01-10 16:35:22
    因为美国黑夜就是中国白天,利用互联网,他员工白天上班就可以监控到美国仓库夜间实际情况,如果发生了像火灾、偷盗这样突发事件,及时电话到美国当地相关人员处理 7.4.1邻接矩阵 224 7.4.2邻接表 228 ...
  • 大话数据结构 程杰

    2018-09-01 10:06:43
    因为美国黑夜就是中国白天,利用互联网,他员工白天上班就可以监控到美国仓库夜间实际情况,如果发生了像火灾、偷盗这样突发事件,及时电话到美国当地相关人员处理 7.4.1邻接矩阵 224 7.4.2邻接表 228 ...
  • xml入门教程/xml入门教程

    热门讨论 2008-09-07 18:20:03
    3)DTD的缺陷,DTD中的类型比较少,有一些约束在DTD中是表达不了的,DTD不支持XML语法. &3.NameSpace(命名空间) namespace是为了解决XML文档中的命名冲突问题的。 DTD不支持命名空间,解析器无法测试命名空间...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    在软件开发生命周期中的哪个阶段开始测试? 89.dotnet与J2EE比较? 90.什么是ActiveX? 91.Java中IDL是什么? 92.ISO9000和CMM是什么?IS09000和CMM(软件能力成熟度模型)认证是国际上通用软件质量评估方法.CMM...
  • 如果发生了像火灾、偷盗这样突发事件,及时电话到美国当地相关人员处理 7.4.1 邻接矩阵 224 7.4.2 邻接表 228 7.4.3 十字链表 232 7.4.4 邻接多重表 234 7.4.5 边集数组 236 7.5 图遍历 237 我有一天早晨准备...
  • 然而,结构在几个重要方面不同于类:结构为值类型不是引用类型,并且结构不支持继承。结构值存储在“在堆栈上”或“内联”。细心程序员有时可以通过聪明地使用结构来增强性能。 12.概述.NET里对 remoting 和 ...
  • 自己之前在面试的时候就有被问到诸如mouseover和mouseenter事件的异同之类的问题?当时没有答出来,一直也对这两个事件有点模糊不清,趁着最近正在读...

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

哪个不是事件的类型