IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> JS(4) -> 正文阅读

[移动开发]JS(4)

1.注册事件
(1)传统绑定方法,例如onclick
  同一个元素绑定多个事件对象时以最后一个为准
(2)addEventListener事件监听方式
  addEventListener(type,listener,useCapture)
  type:事件类型字符串,例如click
  listener:事件处理函数,事件发生时会调用该监听函数
  useCapture:一个布尔参数默认为false
  同一个元素可以绑定多个监听器,且依次触发
  <body>
    <button>
      新方法
    </button>
    <script>
      var btn=document.querySelector('button')
      addEventListener('事件类型','事件处理函数','可选参数')
      btn.addEventListener('click',function(){
        alert('111')
      })
      btn.addEventListener('click',function(){
        alert('222')
      })
    </script>
  </body>
  (3)attachEvent('onClick',function(){}) ie9以前支持,不提倡使用
2.删除事件
(1)传统方法
  元素.onClick = null
(2)removeEventListener
  <body>
    <button>
      点击一次后解绑事件
    </button>
    <script>
      var btn=document.querySelector('button')
      这里fn不用加小括号
      btn.addEventListener('click',fn)
      function fn(){
        alert('fn')
        btn.removeEventListener('click',fn)
      }
    </script>
  </body>
(3)detachEvent
  使用方法与removeEventListener相同,针对于attachEvent使用
3.DOM事件流
  下列代码是给一个按钮绑定点击事件
  <body>
    <button>
      DOM事件流
    </button>
    <script>
      var btn=document.querySelector('button')
      btn.addEventListener('click',fn)
      function fn(){
        alert('fn')
      }
    </script>
  </body>
  事件捕获
  执行时点击事件,从Dcoument文档对象一直往下一层层找,直到找到button里的点击事件
  事件冒泡
  从button往上一次传播
  具体见图1,2
  注意
  1:JS代码值能执行捕获或冒泡一个阶段
  2:onclick和attachEvent只能得到冒泡阶段;
     addEventListener第三个参数若是true则在执行捕获;若false或不写则执行冒泡
  3:onblur,nfocus,onmouseenter,onmouseleave没有冒泡过程

?图1

图2

4.事件对象
(1)使用方法
  <div>
    <button>
      事件对象
    </button>
  </div>
  <script>
    var btn = document.querySelector('button')
    btn.onclick = function (e) {
      IE678用window.event获取对象
      e = e || window.event
      console.log(e);
    }
  </script>
  这里的e就是事件对象,有事件时才有事件对象
(2)对象属性
  e.target返回的是触发事件的对象,事件委托会用到(IE678使用e.srcElement)
  e.this返回的是绑定事件的对象
  e.type返回事件类型
  e.preventDefault()阻止事件默认行为,注意这是方法要加(),addEventListener只能用这个
  e.returnValue阻止事件默认行为(IE678使用e.srcElement)
  阻止事件冒泡
  e.stopPropagation()方法
  e.cancelBubble = true(IE678专用)
5.事件委托
  原理:不要给每个子节点单独设置事件监听器
        而是把它设置在父元素上,利用冒泡影响设置每一个子节点
  作用:只操作一次DOM,提高了程序性能
  <ul>
    <li>事件委托</li>
    <li>事件委托</li>
    <li>事件委托</li>
    <li>事件委托</li>
  </ul>
  <script>
    let ul = document.querySelector('ul')
    ul.addEventListener('click',function(e){
      e.target.style.backgroundColor = 'pink'
    })
  </script>
6.鼠标事件
(1)禁止右键菜单
  document.addEventListener('contextmenu',function(e){
    e.preventDefault()
  })
  禁止选中文字
  document.addEventListener('selectstart',function(e){
    e.preventDefault()
  })
(2)获取鼠标箭头位置属性见图3
(3)mousemove只要鼠标移动1px就会触发事件
8.键盘事件
(1)keydown键子按下时,keypress键子按下时(不能识别功能键),keyup按键弹起时
  执行顺序也是上面的顺序
  keydown和keypress在文本框里时,当他们两个事件触发时,文字还没落入文本框中
(2)键盘事件对象中keyCode可以获取按键的ASCII码
  keydown,keyup不区分大小写按a和A都是65
  keypress区分大小写按a和A是97和65

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:41:49  更:2022-03-15 22:43:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 17:32:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码