美文网首页
3-事件处理/委托/冒泡 标签默认行为 自动触发事件 自定义事件

3-事件处理/委托/冒泡 标签默认行为 自动触发事件 自定义事件

作者: 前端雨 | 来源:发表于2017-12-10 11:41 被阅读0次

事件处理

  • 方法
    1. jQ().事件类型(callback): 当指定标签中注册事件被触发时, 会执行回调函数中的代码
    2. jQ().on(事件类型, [obj],callback)
  • 事件回调函数中的缺省参数-事件对象
    • 我们可以根据事件对象来获取更详细的信息
    • type: 事件的类型
    • target: 事件作用的对象
    • data: 传递对象参数给回调函数的 event.data //on事件中的obj对象
  • 给标签添加多个事件(可以是相同类型的), 不会覆盖

事件委托

  • jQ对象.on(type, selector, callback)
  • 参数
    • type: 事件类型
    • selector: 给谁注册事件(选择器)
    • callback: 事件发生后的回调函数
  • 优点
    • 给尚不存在的标签(在注册事件的时候,标签还没有生成)添加事件类型
    • 可以提高性能

事件冒泡

  • 定义: 子标签和父标签身上如果注册了相同类型的事件,那么子标签的事件被触发的时候,父标签的事件也会被触发,而且它是层层向上触发的
  • 阻止事件冒泡方法
    • 对应标签返回false: return false
    • 使用事件对象的方法: e.stopPropagation();
  • 注意: 阻止冒泡是只会阻止当层向上冒泡
  • on(onclick)执行事件特点: 如果多次执行,会覆盖掉之前的执行,只保留最后一次
    • element.addEventListener(event, function, true): 所有的事件都会被触发,遵循的是冒泡规律(第三个参数改为false就是先捕获父亲事件)

标签的默认行为

  • form(默认提交表单)等标签有一些默认行为, a标签默认行为在点击后会跳转到链接的地址, 如果类似的标签, 再给他们注册点击事件等, 那么会触发多个动作
  • 阻止标签的默认行为
    • 事件对象.preventDefault

自动触发事件方法(点击事件)

  1. jQ().trigger(type)
    • 作用于对象(事件对象.target): jQ实例对象中所有的标签
    • 不会阻止事件冒泡
      • 作用于a标签, 阻止标签的默认(跳转)行为
      • 作用于表单, 不会阻止表单的默认(提交)行为
  2. jQ().triggerHandler(type)
    • 作用于对象: jQ实例对象中第一个标签
    • 默认会阻止事件冒泡
    • 会阻止标签的默认事件(form等部分标签)
      • 作用于a标签, 阻止标签的默认(跳转)行为
      • 作用于表单, 会阻止表单的默认(提交)行为

自定义事件/取消事件

  • 自定义事件: 可以给标签添加任意事件类型
    • 自动触发

         $('button').on('xx',function(){
            console.log(11);
        })      
        $('button').triggle('xx');
      
  • 取消事件: jQ().off(type,[fn])
    • 参数
      • type: 事件类型
      • fn: 可选. 过滤特定事件(对象身上可能添加了多个事件, 取消选中的特定事件)

DOM操作常见方法

  1. remove(); 删除操作 - 把选定标签删除掉(包括该标签)

  2. empty(); 清空操作 - 把选定标签的内容删除(子标签及其文本)

  3. clone() 克隆操作 - 把已有的内容复制一份

    • 默认情况下, 克隆标签时, 不会克隆事件
    • 若想克隆事件, 传入一个参数true
  4. replaceWith() 替换 - 用新内容替换当前的标签(传值: 标签/jQ对象)

  5. after() | insertAfter 被选元素后插入指定的内容 | 插入内容到标签后面

  6. before() | insertBefore 被选元素前插入指定的内容 | 插入内容到标签前面

  7. append() | appendTo() 插入到标签内容的后面 | 把内容插入到标签内容的后面

     <p>paragraph.</p>
     //6. 被选元素(p标签)前插入指定的内容 | 把内容插入到p标签前面
     $("p").before("<p>Hello world!</p>");
     $("<span>你好!</span>").insertBefore("p");
     
     //7. 在P标签内容后插入内容 | 把内容插入到p标签内容的后面 - 都显示paragraph.Hello World!
     $("p").append(" <b>Hello world!</b>");  
     $("<b> Hello World!</b>").appendTo("p");    
    
  8. prepend() | prependTo() 插入到标签内容的前面 | 把内容插入到标签内容的前面

相关文章

  • 3-事件处理/委托/冒泡 标签默认行为 自动触发事件 自定义事件

    事件处理 方法jQ().事件类型(callback): 当指定标签中注册事件被触发时, 会执行回调函数中的代码jQ...

  • 事件委托与事件冒泡

    阻止事件默认行为(事件委托)e.preventDefault();阻止事件冒泡e.stopPropagation(...

  • vue事件

    禁止事件冒泡 停止事件默认行为 特定的键触发行为 事件对象和元素

  • js 元素事件行为

    阻止默认事件: 事件委托: 阻止事件冒泡:

  • Javascript事件系统

    本文内容 事件基础 事件监听方式 事件默认行为 事件冒泡与事件捕获 事件绑定与事件委托 事件基础 注意:本文不会深...

  • jquery知识点汇总

    delegate 注册事件和on注册事件 事件冒泡和事件默认行为 常用自定义效果 $.ajax() 请求

  • JavaScript Events事件汇总

    事件参数、事件捕获冒泡 事件委托 事件默认行为 DOM 1 、DOM 2、DOM 3模型 实现遮罩功能(点击穿透、...

  • Javascript事件系统

    本文内容:事件基础事件监听方式事件默认行为事件冒泡与事件捕获事件绑定与事件委托事件基础注意:本文不会深入探究Jav...

  • JavaScript 事件委托

    1. 事件委托 事件处理程序过多的解决方法就是事件委托,事件委托利用的是事件冒泡。事件冒泡:事件由最具体的元素接收...

  • 事件委托与冒泡、事件捕获

    事件委托:利用冒泡的原理,把事件加到父级上,触发执行效果。 例子: 事件冒泡:事件从事件目标(target)开始,...

网友评论

      本文标题:3-事件处理/委托/冒泡 标签默认行为 自动触发事件 自定义事件

      本文链接:https://www.haomeiwen.com/subject/dhgmixtx.html