JavaScript常用事件大全:从基础到实战应用

JavaScript常用事件大全:从基础到实战应用

JavaScript事件是网页交互的核心。本文将全面介绍常用事件类型及其实际应用场景,帮助开发者快速掌握事件处理技巧。

一、鼠标事件(8种核心操作)事件名称触发时机使用示例click鼠标单击元素时触发按钮操作dblclick鼠标双击元素时触发文件打开mousedown鼠标按键按下瞬间触发拖拽开始mouseup松开鼠标按键时触发拖拽结束mouseover鼠标移入元素区域时触发菜单展开mousemove鼠标在元素内移动时持续触发绘图工具mouseout鼠标移出元素区域时触发提示隐藏mouseenter鼠标进入元素时触发(不冒泡)动画开始实际应用技巧:

// 实现简单绘图板

const canvas = document.getElementById('drawing-board');

canvas.addEventListener('mousedown', startDrawing);

canvas.addEventListener('mousemove', draw);

canvas.addEventListener('mouseup', stopDrawing);

二、键盘事件(3种输入状态)事件名称触发时机keydown键盘按键按下瞬间触发keyup松开键盘按键时触发keypress按住按键持续触发(已废弃)注意: 现代开发建议优先使用 keydown + keyup 组合

三、页面生命周期事件(6个关键节点)window.addEventListener('load', () => {

// 页面完全加载后执行(包括图片)

});

window.addEventListener('domContentLoaded', () => {

// DOM解析完成时执行(无需等待资源)

});

window.addEventListener('beforeunload', (e) => {

// 页面关闭前提醒用户保存数据

e.preventDefault();

return (e.returnValue = '确定离开吗?');

});

window.addEventListener('resize', () => {

// 窗口大小变化时适配布局

});

window.addEventListener('scroll', () => {

// 滚动时实现吸顶效果

});

四、表单事件(5种交互状态)focus:输入框获得焦点(如显示历史记录)

blur:输入框失去焦点(如验证格式)

change:值改变且失去焦点后(适合下拉菜单)

input:值实时变化时触发(推荐替代keypress)

submit:表单提交前验证(必须阻止默认行为)

验证代码示例:

document.getElementById('email').addEventListener('blur', function() {

if (!this.value.includes('@')) {

this.style.borderColor = 'red';

}

});

五、现代事件类型(必学8种)touchstart/touchend:移动端触摸事件

transitionend:css动画结束时触发

visibilitychange:标签页切换时处理

contextmenu:右键菜单自定义(需阻止默认)

paste:粘贴板数据处理

fullscreenchange:全屏模式切换

online/offline:网络状态检测

六、高级事件处理技巧事件委托: 动态元素处理终极方案

// 统一处理表格按钮

document.querySelector('#>).addEventListener('click', e => {

if (e.target.classList.contains('delete-btn')) {

deleteRecord(e.target.dataset.id);

}

});性能优化:滚动事件

// 滚动事件节流处理

let isScrolling;

window.addEventListener('scroll', () => {

clearTimeout(isScrolling);

isScrolling = setTimeout(() => {

// 实际执行的操作

}, 100);

});自定义事件: 实现组件通信

// 创建事件

const refreshEvent = new Event('dataRefresh');

// 触发事件

document.dispatchEvent(refreshEvent);

// 监听事件

document.addEventListener('dataRefresh', loadData);

实战建议(提升代码质量)优先使用 addEventListener 替代 on* 属性

移动端务必添加 touch 事件支持

表单验证使用 input + blur 组合

页面卸载前使用 beforeunload 保存数据

高频事件(resize/scroll)必须做节流处理

根据MDN官方数据,现代浏览器对标准事件的兼容性已达98%以上(IE11除外),开发者可放心使用。掌握这些事件机制,能显著提升用户交互体验。建议在实际项目中多练习事件委托和自定义事件的使用,这是构建复杂应用的关键技术。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/12882

相关推荐

哥伦比亚3球完胜,送高居世界第八波兰队提前出局
365bet体育在线备用

哥伦比亚3球完胜,送高居世界第八波兰队提前出局

📅 10-07 👁️ 9335
5月去日本哪裡玩?跟著達人遊遍日本5月必訪景點
如何做好固定资产的管理
365bet下注

如何做好固定资产的管理

📅 08-15 👁️ 9132