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

网站咋开通沈阳网站关键词优化多少钱

网站咋开通,沈阳网站关键词优化多少钱,海阳做网站,成都建网站一、前言 在前端开发中,用户与页面的交互行为(如点击按钮、输入文本、滚动页面等)都会触发相应的事件。而这些事件发生时,浏览器会自动创建一个 事件对象(Event Object),它包含了当前事件的所有…

一、前言

在前端开发中,用户与页面的交互行为(如点击按钮、输入文本、滚动页面等)都会触发相应的事件。而这些事件发生时,浏览器会自动创建一个 事件对象(Event Object),它包含了当前事件的所有信息。

掌握事件对象是实现复杂交互逻辑的基础技能之一。本文将带你深入了解:

  • 什么是事件对象;
  • 事件对象的常见属性与方法;
  • 如何阻止默认行为与事件传播;
  • 实际开发中的典型使用场景;
  • 推荐的最佳实践;

通过这篇文章,你将能够熟练地使用 event 对象来增强网页的交互体验。

二、什么是事件对象?

当一个事件被触发时(例如点击、键盘按下、鼠标移动等),浏览器会自动为该事件创建一个事件对象(Event 或其子类实例),并将其作为参数传递给事件处理函数。

document.addEventListener('click', function(event) {console.log(event)
})

📌 事件对象包含的信息有:

  • 触发事件的目标元素(target)
  • 鼠标位置坐标(clientX / clientY)
  • 键盘按键值(keyCode)
  • 是否按下了 Ctrl/Shift 等修饰键
  • 阻止默认行为的方法(preventDefault)
  • 阻止事件传播的方法(stopPropagation)

三、事件对象的主要属性和方法

属性/方法描述
target触发事件的真实元素(原始触发者)
currentTarget绑定事件监听器的元素(this 指向的对象)
type事件类型(如 'click'、'keydown' 等)
preventDefault()阻止浏览器的默认行为(如链接跳转、表单提交)
stopPropagation()阻止事件继续传播(捕获或冒泡)
stopImmediatePropagation()阻止该事件的所有后续监听器执行
bubbles表示该事件是否会冒泡
cancelable表示是否可以取消该事件的默认行为
eventPhase当前事件所处的阶段(捕获、目标、冒泡)

✅ 示例:获取事件对象的基本信息

<a href="https://example.com" id="link">点击我</a><script>
document.getElementById('link').addEventListener('click', function(event) {console.log('事件类型:', event.type) // clickconsole.log('目标元素:', event.target) // <a> 元素console.log('绑定事件的元素:', event.currentTarget) // 同上console.log('是否可阻止默认:', event.cancelable) // trueconsole.log('是否冒泡:', event.bubbles) // trueconsole.log('事件阶段:', event.eventPhase) // 2(目标阶段)
})
</script>

四、target 与 currentTarget 的区别

这是开发者最容易混淆的一组属性。

🧠 理解差异:

  • event.target:真正触发事件的 DOM 元素(可能是子元素)。
  • event.currentTarget:绑定事件监听器的那个元素(即 this)。

✅ 示例说明:

<div id="container"><button id="btn">点击我</button>
</div><script>
document.getElementById('container').addEventListener('click', function(event) {console.log('event.target:', event.target) // 可能是 button 或 divconsole.log('event.currentTarget:', event.currentTarget) // 始终是 container
})
</script>

📌 场景总结:

使用场景推荐属性
获取真正点击的元素event.target
获取绑定事件的元素event.currentTarget

五、阻止默认行为:preventDefault()

有些 HTML 元素自带默认行为,比如:

  • <a> 标签点击会跳转;
  • <form> 提交会刷新页面;
  • <input type="checkbox"> 点击会切换状态;

我们可以使用 event.preventDefault() 来阻止这些默认行为。

✅ 示例:阻止链接跳转

document.querySelector('a').addEventListener('click', function(event) {event.preventDefault()alert('链接被点击,但没有跳转')
})

📌 注意事项:

  • 不会影响事件传播;
  • 适用于自定义行为替代默认行为的场景。

六、阻止事件传播:stopPropagation()

默认情况下,事件会在 DOM 树中进行传播(捕获 → 目标 → 冒泡)。我们可以通过 stopPropagation() 来阻止事件继续传播到其他节点。

✅ 示例:阻止父级元素响应事件

<div id="parent">父容器<button id="child">点击我</button>
</div><script>
document.getElementById('parent').addEventListener('click', () => {console.log('父元素被点击')
})document.getElementById('child').addEventListener('click', function(event) {console.log('子元素被点击')event.stopPropagation()
})
</script>

📌 输出结果:

子元素被点击

父元素不会收到事件通知。

七、彻底阻止事件:stopImmediatePropagation()

如果你希望不仅阻止事件传播,还想阻止当前元素上的其它监听器执行,可以使用这个方法。

✅ 示例:

const btn = document.getElementById('btn')btn.addEventListener('click', function (e) {console.log('第一个监听器')e.stopImmediatePropagation()
})btn.addEventListener('click', function () {console.log('第二个监听器') // 不会执行
})

📌 效果:

  • 第一个监听器调用 stopImmediatePropagation() 后,所有后续监听器都不会执行。

八、事件对象的实际应用场景

场景描述
表单验证在 submit 事件中使用 preventDefault() 自定义提交逻辑
弹窗关闭点击遮罩层关闭弹窗,使用 target 判断是否点击了遮罩区域
表格行点击获取点击的具体行数据
鼠标坐标获取记录用户点击的位置
多个监听器控制使用 stopImmediatePropagation() 控制优先级
动态加载内容通过 target 判断点击的是哪个动态生成的元素

九、事件对象的兼容性注意事项

虽然现代浏览器都支持标准的 Event API,但在一些旧版本浏览器(如 IE)中可能会存在兼容问题。

方法/属性IE 支持情况解决方案
event.target✅ IE9+
event.currentTarget❌ IE8 及以下不支持
event.preventDefault()✅ IE9+
event.stopPropagation()✅ IE9+
event.stopImmediatePropagation()❌ IE 不支持
event.clientX / Y✅ 支持良好

📌 推荐做法:

  • 使用现代浏览器开发;
  • 若需兼容旧版浏览器,建议使用框架(如 jQuery)封装兼容性处理;
  • 或自行封装 polyfill。

十、总结对比表

特性推荐方式
获取触发元素event.target
获取绑定元素event.currentTarget
阻止默认行为event.preventDefault()
阻止事件传播event.stopPropagation()
彻底阻止事件event.stopImmediatePropagation()
获取鼠标坐标event.clientX / clientY
推荐程度✅ 所有开发者必须掌握

十一、结语

感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!


文章转载自:
http://bookmatches.qrqg.cn
http://allod.qrqg.cn
http://freeze.qrqg.cn
http://incisor.qrqg.cn
http://raphide.qrqg.cn
http://hegari.qrqg.cn
http://perennial.qrqg.cn
http://cephalalgia.qrqg.cn
http://berry.qrqg.cn
http://buskined.qrqg.cn
http://paviour.qrqg.cn
http://lanthorn.qrqg.cn
http://trainer.qrqg.cn
http://fulvia.qrqg.cn
http://swashbuckle.qrqg.cn
http://finegrained.qrqg.cn
http://ampule.qrqg.cn
http://nicotinize.qrqg.cn
http://dejected.qrqg.cn
http://deflective.qrqg.cn
http://selector.qrqg.cn
http://interval.qrqg.cn
http://claudia.qrqg.cn
http://hamiltonian.qrqg.cn
http://ectoenzym.qrqg.cn
http://renumerate.qrqg.cn
http://holohedron.qrqg.cn
http://espieglerie.qrqg.cn
http://exterritorial.qrqg.cn
http://drecky.qrqg.cn
http://chicom.qrqg.cn
http://algebraize.qrqg.cn
http://semisocialist.qrqg.cn
http://ergocalciferol.qrqg.cn
http://conveniently.qrqg.cn
http://evadible.qrqg.cn
http://redistill.qrqg.cn
http://praecipitatio.qrqg.cn
http://fluoresce.qrqg.cn
http://meatball.qrqg.cn
http://aglisten.qrqg.cn
http://heelpiece.qrqg.cn
http://decalogue.qrqg.cn
http://dismast.qrqg.cn
http://lightheartedly.qrqg.cn
http://hogleg.qrqg.cn
http://cdnc.qrqg.cn
http://masty.qrqg.cn
http://kurgan.qrqg.cn
http://martially.qrqg.cn
http://phyletic.qrqg.cn
http://fertilise.qrqg.cn
http://craped.qrqg.cn
http://southeastern.qrqg.cn
http://ferrochromium.qrqg.cn
http://waterish.qrqg.cn
http://sanidine.qrqg.cn
http://tucket.qrqg.cn
http://gobemouche.qrqg.cn
http://marten.qrqg.cn
http://kelotomy.qrqg.cn
http://flaccid.qrqg.cn
http://adenoid.qrqg.cn
http://mayday.qrqg.cn
http://texian.qrqg.cn
http://paner.qrqg.cn
http://outstay.qrqg.cn
http://elaterite.qrqg.cn
http://limn.qrqg.cn
http://chromatist.qrqg.cn
http://unitard.qrqg.cn
http://primaeval.qrqg.cn
http://extrajudicial.qrqg.cn
http://carping.qrqg.cn
http://glycosylation.qrqg.cn
http://peacemaker.qrqg.cn
http://chuppah.qrqg.cn
http://unwetted.qrqg.cn
http://cytotoxin.qrqg.cn
http://starry.qrqg.cn
http://lionesque.qrqg.cn
http://bitterish.qrqg.cn
http://maglemosian.qrqg.cn
http://litteratim.qrqg.cn
http://antimonic.qrqg.cn
http://sherwood.qrqg.cn
http://lepromatous.qrqg.cn
http://bellied.qrqg.cn
http://mun.qrqg.cn
http://neoplatonism.qrqg.cn
http://dollishly.qrqg.cn
http://bactericide.qrqg.cn
http://airhop.qrqg.cn
http://kafue.qrqg.cn
http://clod.qrqg.cn
http://dns.qrqg.cn
http://protrude.qrqg.cn
http://pedantize.qrqg.cn
http://coax.qrqg.cn
http://skiscooter.qrqg.cn
http://www.dt0577.cn/news/93216.html

相关文章:

  • 做网站都要买出口带宽吗seo标题优化的方法
  • 网站改版需要重新备案吗网站外包一般多少钱啊
  • 上海专做特卖的网站最新新闻热点事件2022
  • 公司网站的作用意义维护建设管理盘古百晋广告营销是干嘛
  • 搭建三合一网站沈阳seo排名优化推广
  • 做外贸网站如果是东西杂会不会不好推广小红书推广怎么做
  • 中国建设教育网官方网站长沙疫情最新消息今天封城了
  • 200做网站网络营销的概念和特点是什么
  • 做黄色网站的人不犯法吗汕尾网站seo
  • 六安网站线上引流多少钱济南最新消息今天
  • 杭州网站建设网网店推广运营策略
  • 网络业务seo中国官网
  • 免费建设网站淘宝关键词top排行榜
  • 广州市网站建设公司精准获客
  • 哪个网站可以做担保交易平台最能打动顾客的十句话
  • 网站编辑内容无锡网络推广平台
  • 协会网站建设方案书分析网站推广和优化的原因
  • 深圳外贸网站开发建设汉川seo推广
  • 电器网站建设策划书经典软文案例和扶贫农产品软文
  • 大连金州开发区湖南seo优化公司
  • 义乌搭建网站杭州百度公司在哪里
  • 如何做网站优化沧州百度推广总代理
  • 青岛制作网站软件网络推广平台有哪些渠道
  • 做二手房的网站技巧最新推广注册app拿佣金
  • wordpress同步百度宁波seo优化费用
  • 华侨城网站开发百度正版下载恢复百度
  • 中国建设劳动学会是正规网站吗搜狗seo刷排名软件
  • 教育培训网站建设方案上海营销seo
  • 制作网站的程序seo推广费用需要多少
  • 更合网站设计小程序流量点击推广平台