美文网首页
第25章 事件冒泡捕获阻止默认

第25章 事件冒泡捕获阻止默认

作者: kzc爱吃梨 | 来源:发表于2019-05-09 17:00 被阅读0次
DOM事件流

写一个 Demo,演示事件传播的过程,演示阻止传播的效果。

<style>
  .container,
  .box,
  .target{
    border: 1px solid;
    padding: 20px;
  }
</style>
  
<button id="btn">click</button>
<div class="container">
  container
  <div class="box">
    box
    <div class="target">target</div>
  </div>
</div>
  
<script>
function $(selector){
  return document.querySelector(selector)
}
  
var btn = $('#btn')
btn.addEventListener('click',function(evt){
  console.log(evt.target)
})

$('.container').addEventListener('click',function(e){
  console.log('container click in 捕获阶段')
},true)
$('.box').addEventListener('click',function(e){
  // e.stopPropagation()
  // 在此处添加 e.stopPropagation()则捕获阶段止于 box 捕获阶段 ,后面的捕获阶段和冒泡都不在进行了
  console.log('box click in 捕获阶段')
},true)
$('.target').addEventListener('click',function(e){
  console.log('target click in 捕获阶段')
},true)

$('.container').addEventListener('click',function(e){
  console.log('container click in 冒泡阶段')
},false)
$('.box').addEventListener('click',function(e){
  // e.stopPropagation()
  // 在此处添加 e.stopPropagation()则冒泡阶段止于 box 而不再向上出现"container click in 冒泡阶段"
  console.log('box click in 冒泡阶段')
},false)
$('.target').addEventListener('click',function(e){
  console.log('target click in 冒泡阶段')
},false)
</script>

阻止默认事件

<a href="http://baid.com">baidu</a>
<script>
  document.querySelector('a').onclick= function(e){
    e.preventDefault()
    console.log(this.href)
    if(/baidu.com/.test(this.href)){
      location.href = this.href
    }
  }
</script>
<form action="/login">
    <input type="text" name="username">
    <input type="submit">
</form>
<script>
    document.querySelector('form').addEventListener('submit', function(evt){
        evt.preventDefault()
        if(document.querySelector('input[name=username]').value === 'jirengu'){
            this.submit()
        }
    })
</script>

preventDefault() Function 只读 取消事件默认行为。取消点击a连接的默认跳转行为。阻止输入的上传,在输入框校验正解时才上传。

相关文章

  • java script 知识点

    事件事件流冒泡捕获阻止冒泡e.stopPropagation()阻止默认事件e.preventDefault()常...

  • vue修饰符

    事件修饰符: .stop 阻止事件冒泡 .prevent 阻止默认事件 .capture 事件捕获 .self 将...

  • vue 事件修饰符

    .stop 阻止事件冒泡 .prevent 阻止默认事件 .capture 事件捕获 .self 只有点击元素本身...

  • js中的事件

    事件 事件流冒泡捕获阻止冒泡 阻止默认事件 常用事件 键盘 窗口 鼠标 拖放松开 表单 事件参数target 目标...

  • v-on的事件修饰符

    .stop:阻止事件冒泡(对后代元素) .prevent:阻止事件默认行为 .capture:使用事件捕获机制 ....

  • vue

    vue的事件修饰符:.stop:阻止冒泡.prevent:阻止默认行为.capture 捕获.self ...

  • Vue事件修饰符

    1· .stop 阻止冒泡 2· .prevent 阻止默认行为 3· .capture 实现捕获触发事件机...

  • js 元素事件行为

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

  • vue事件

    事件:stopPropagation, cancelBubble=true阻止事件传播,阻止冒泡,也可以阻止捕获p...

  • 事件代理及常用的 HTML 事件

    之前总结了事件捕获和冒泡以及阻止事件传播,今天写一下事件代理方面的总结DOM 事件之捕获、冒泡:阻止事件传播: 事...

网友评论

      本文标题:第25章 事件冒泡捕获阻止默认

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