当前位置: 首页 > news >正文

深圳做网站那家公司好成都私人网站制作

深圳做网站那家公司好,成都私人网站制作,企业网站设计源代码,五大建设是什么内容参考资料 事件介绍Element事件 目录 常见的事件鼠标事件键盘事件Focus events 添加事件监听方式一:addEventListener()(推荐)方式二:事件处理器属性方式三:内联事件处理器(不推荐) 移除监听器方…

参考资料

  • 事件介绍
  • Element事件

目录

    • 常见的事件
      • 鼠标事件
      • 键盘事件
      • Focus events
    • 添加事件监听
      • 方式一:addEventListener()(推荐)
      • 方式二:事件处理器属性
      • 方式三:内联事件处理器(不推荐)
    • 移除监听器
      • 方式一:removeEventListener
      • 方式二:AbortController
    • 事件的控制
      • 阻止默认行为 preventDefault
      • 事件冒泡
      • 阻止事件冒泡 stopPropagation
      • 事件捕获
      • 事件委托

常见的事件

鼠标事件

事件触发时机
click鼠标的主键在一个元素上被按下和放开时
dblclick在单个元素上单击两次鼠标的主按钮时
contextmenu在用户尝试打开上下文菜单时
mousedown鼠标按钮在元素内按下时
mouseup鼠标按钮在元素内释放时
mouseenter鼠标首次移动到元素的激活区域内时
mouseleave鼠标指针移出某个元素时被触发
mousemove鼠标的光标在元素内移动时

键盘事件

事件触发时机
keypress当按下产生字符或符号值的键时已弃用
keydown键盘按键按下时(所有按键均会触发)
keyup按键被松开时触发

Focus events

事件触发时机
focus元素获取焦点时
blur元素失去焦点的时

添加事件监听

方式一:addEventListener()(推荐)

语法

addEventListener(type, listener);
addEventListener(type, listener, options);
addEventListener(type, listener, useCapture);

参数

参数名类型必须说明
typeString监听事件类型(大小写敏感)
listenerFuncion当所监听的事件类型触发时,会接收到一个事件通知Event对象
optionsObjcet可选一个指定有关 listener 属性的可选参数对象
useCaptureBoolean可选false事件冒泡;true事件捕获

options可选值

参数名类型必须说明
captureBoolean可选事件捕获
onceBoolean可选最多只调用一次 listener
passiveBoolean可选表示 listener 永远不会调用 preventDefault()
signalAbortSignal可选该 AbortSignal 的 abort() 方法被调用时,监听器会被移除。

示例:绑定input获得焦点事件

<inputtype="text"id="input-name"
/><script>let inputName = document.querySelector('#input-name')inputName.addEventListener('focus', (event) => {console.log(event)})
</script>

addEventListener 方式可以在单个事件上添加多个监听器

<button>按钮</button><script>const btn = document.querySelector('button')// 添加多个事件处理器btn.addEventListener('click', () => {console.log('处理器1')})btn.addEventListener('click', () => {console.log('处理器2')})
</script>

方式二:事件处理器属性

示例:为div元素绑定click点击事件

<style>#box {width: 200px;height: 200px;background-color: gray;}
</style><div id="box"></div><script>let box = document.querySelector('#box')box.onclick = (event) => {console.log(event)}
</script>

事件处理器属性,不能为一个事件添加一个以上的处理程序,因为任何后续尝试都会覆写较早设置的属性

方式三:内联事件处理器(不推荐)

<inputtype="text"onfocus="handleFocus()"
/><script>function handleFocus(event) {let e = event || window.eventconsole.log(e)}
</script>

你永远不应该使用 HTML 事件处理器属性——那些已经过时了,使用它们是不好的做法。

移除监听器

方式一:removeEventListener

<button>按钮</button><script>function handleButtonClick(event) {console.log(event)}const btn = document.querySelector('button')// 添加事件处理器btn.addEventListener('click', handleButtonClick)// 移除监听器btn.removeEventListener('click', handleButtonClick)
</script>

方式二:AbortController

<button>按钮</button><script>function handleButtonClick(event) {console.log(event)}const controller = new AbortController()const btn = document.querySelector('button')// 添加事件处理器btn.addEventListener('click', handleButtonClick, {signal: controller.signal, // 向该处理器传递 AbortSignal})// 移除任何/所有与该控制器相关的事件处理器controller.abort()
</script>

事件的控制

阻止默认行为 preventDefault

表单中只有一个输入框,默认键盘敲下回车就会提交表单,可以阻止这种默认行为

<!-- 表单 -->
<form id="form"><inputtype="text"id="name"/>
</form><script>const form = document.querySelector('#form')form.addEventListener('submit', (e) => {e.preventDefault()console.log('submit');})
</script>

事件冒泡

当点击button时,外层容器也会接收到click事件

<div id="box"><button>点击</button>
</div><script>const btn = document.querySelector('button')const box = document.querySelector('#box')btn.addEventListener('click', (e) => {console.log('btn click')})box.addEventListener('click', (e) => {console.log('box click')})
</script>

输出顺序

btn click
box click

阻止事件冒泡 stopPropagation

使用stopPropagation可以阻止事件继续传播

<div id="box"><button>点击</button>
</div><script>const btn = document.querySelector('button')const box = document.querySelector('#box')btn.addEventListener('click', (e) => {e.stopPropagation() // 阻止冒泡console.log('btn click')})box.addEventListener('click', (e) => {console.log('box click')})
</script>

事件捕获

<div id="box"><button>点击</button>
</div><script>const btn = document.querySelector('button')const box = document.querySelector('#box')btn.addEventListener('click',(e) => {console.log('btn click')},{ capture: true })box.addEventListener('click',(e) => {console.log('box click')},{ capture: true })
</script>

输出(和冒泡顺序相反)

box click
btn click

事件委托

利用事件冒泡可以实现事件委托,简化代码

简单的事件监听

<div id="box"><button id="buttonA">点击A</button><button id="buttonB">点击B</button>
</div><script>const buttonA = document.querySelector('#buttonA')const buttonB = document.querySelector('#buttonB')buttonA.addEventListener('click', (e) => {console.log('buttonA click')})buttonB.addEventListener('click', (e) => {console.log('buttonB click')})
</script>

使用事件委托,仅用监听外层元素的事件

<div id="box"><button id="buttonA">点击A</button><button id="buttonB">点击B</button>
</div><script>const box = document.querySelector('#box')box.addEventListener('click', (e) => {// 事件触发元素 buttonA / buttonBconsole.log(e.target)// 获取元素id属性let targetId = e.target.getAttribute('id')console.log(targetId)// 处理元素 boxconsole.log(e.currentTarget)})
</script>

参考文章

  1. 如何将事件作为参数传递给 JavaScript 中的内联事件处理程序?
http://www.hkea.cn/news/49610/

相关文章:

  • ps做网站大小尺寸应用商店优化
  • 网站站群建设方案知名网页设计公司
  • 广州网站建设公司哪家好专业的seo搜索引擎优化培训
  • 外国人做汉字网站seo搜索排名影响因素主要有
  • 外贸五金网站建设网站制作优化排名
  • 义乌网站建设多少钱网络平台营销
  • 怀仁有做网站的公司吗磁力搜索引擎2023
  • 建站行业都扁平化设计合肥网站推广公司哪家好
  • 做企业网站织梦和wordpress哪个好百度指数查询工具app
  • 郑州网站服务公司优化神马排名软件
  • 茶叶网站建设的优势南宁seo外包平台
  • 高古楼网站 做窗子北京seo技术交流
  • 南阳建设网站制作网络最有效的推广方法
  • 纯静态网站seoseo排名优化北京
  • 开封网站建设哪家好指数计算器
  • 网站开发 架构石家庄seo关键词排名
  • 可以免费做商业网站的cms百度seo霸屏软件
  • 哪家网站建设专业快速建站教程
  • 坪山网站建设行业现状优化seo方案
  • 做网站需要架构师吗网站平台有哪些
  • 网站建设丿选择金手指15凡科建站官网
  • 可以做外国网站文章武汉企业seo推广
  • 天津网站建设公司最好太原做网站哪家好
  • 网站代下单怎么做百度指数数据分析平台入口
  • 淘宝做动效代码的网站seo的优化方向
  • 番禺建网站公司网站搜索工具
  • 安徽万振建设集团网站长春网站推广公司
  • 网站怎么制作 推广seo超级外链工具免费
  • 中小学网站建设探讨东莞seo整站优化火速
  • php是网站开发的语言吗企业网站的作用