事件2

85 阅读1分钟
  • 事件的默认行为 `

      /* 当你鼠标右击的时候会发生的事件 */
      document.oncontextmenu = function (e){
          // alert('鼠标右击了')
          /* 禁用了右击鼠标出现的默认菜单 */
    
          /* 这两种禁用方式的区别是
          return false会阻止下面代码的执行 方法已经结束了
          e.preventDefault()不会阻止下面代码执行 */
          return false
          // e.preventDefault()
          console.log(1);
      }
    
      /* 鼠标右击 禁止出现默认的菜单
          显示一个自己的菜单 菜单A 菜单B 菜单C
          出现的位置就是 鼠标的位置 
          div postion:absolute
          top left clientX clientY
      */
    
    
    
    
    
      let a = document.querySelector('a');
      a.onclick = function (e){
          /* 取消默认事件 两种方法 */
          this.style.background = 'red'
          // return false
          /* 事件源对象里面的取消默认事件的方法 */
          // e.preventDefault();
          
      }
    
  • 键盘事件 `

      t.onkeydown = function (e){
          /* 兼容写法 */
          let eobj = e||event;
          /* 事件源对象 */
          console.log(eobj);
          if(eobj.keyCode == 13){
              // alert(this.value)
              alert(eobj.target.value)
          }
      }
      /* 在输入框中输入 字符 按下回车的时候 把输入的字 alert出来 */
    
    
    
    
      /* 键盘按下的时候触发 */
      // t.onkeydown = function (){
      //     console.log('键盘我按下了');
      // }
      // /* 连续敲击的时候触发 */
      // t.onkeypress = function (){
      //     console.log('连续按下键盘并抬起的时候触发');
      // }
      // /* 键盘抬起的时候触发 */
      // t.onkeyup = function (){
      //     console.log('键盘我抬起了');
      // }
      /* 顺序 onkeydown > onkeypress > onkeyup */
    
  • 鼠标点击的位置 `

    `
  • 事件的冒泡和捕获

`

<script>
    /* 点击子元素 把父元素的事件也调用了 事件冒泡 */
    let div1 = document.querySelector('.div1')
    let div2 = document.querySelector('.div2')
    div1.onclick = function(){
        alert(1)
    }
    div2.onclick = function(e){
        /* 兼容写法 让谷歌和ie都支持 */
        let eObj = e || event;
        /* stopPropagation 在低版本的ie下有可能无效 */
        // eObj.stopPropagation()
        /* cancelBubble在ie下也一直有效 */
        eObj.cancelBubble = true;
        alert(2)
        // return false;
        
        /* event是一个js的关键字 这个关键字变量保存了事件源对象的属性*/
        // console.log(event);
        // event.stopPropagation()
        // event.cancelBubble = true;

        /* 事件源对象 */
        // console.log(e);
        /* 阻止事件冒泡的方法 */
        // e.stopPropagation();
        /* 取消冒泡属性 */
        // e.cancelBubble = true;
    }
    /* false表示冒泡(从里到外触发事件) */
    /* true表示捕获 (从外到里触发事件) */
    // div1.addEventListener('click',function (){
    //     alert(1)
    // },true)
    // div2.addEventListener('click',function (){
    //     alert(2)
    // },true)
</script>