js中基本事件的总结(onclick、onblur、onchange等)
目录
js中的基本事件总结:
特定的场景下发生的一个动作:事件;事件=函数(),事件发生会触发函数执行。
一、什么是事件?
事件是用户在网页上的交互行为(如点击、滚动、按键)或浏览器自动触发的行为(如页面加载完成)。JavaScript 通过 事件监听 来响应这些行为。
二、常见事件类型
三、
三、事件处理的三种方式
1. HTML 属性方式(不推荐)
直接在 HTML 元素中定义事件:
运行 HTML
2. DOM 属性方式
通过 JavaScript 为 DOM 元素属性赋值:
const btn = document.querySelector('button');
btn.onclick = function() {
console.log('按钮被点击');
};
// 缺点:无法绑定多个相同事件
3. addEventListener(推荐)
btn.addEventListener('click', function(event) {
console.log('第一次点击');
});
btn.addEventListener('click', () => {
console.log('第二次点击'); // 可以绑定多个处理函数
});
优点:支持多个监听器、可控制事件阶段(捕获/冒泡)
四、事件对象 (event)
事件处理函数会自动接收一个 event 对象,包含事件相关信息:
element.addEventListener('click', function(event) {
console.log(event.target); // 触发事件的元素
console.log(event.clientX, event.clientY); // 鼠标坐标
event.preventDefault(); // 阻止默认行为(如表单提交)
event.stopPropagation(); // 阻止事件冒泡
});
五、事件冒泡与捕获
- 冒泡 (Bubbling):事件从目标元素向上传递到根元素(默认阶段)。
- 捕获 (Capturing):事件从根元素向下传递到目标元素。
// 第三个参数为 true 表示捕获阶段,false 表示冒泡阶段(默认)
parent.addEventListener('click', () => {
console.log('父元素捕获阶段');
}, true);
child.addEventListener('click', () => {
console.log('子元素冒泡阶段');
});
六、表单事件示例
const form = document.querySelector('form');
form.addEventListener('submit', function(event) {
event.preventDefault(); // 阻止表单默认提交
const input = document.querySelector('#username');
console.log('输入的值:', input.value);
});
七、事件委托
利用事件冒泡,将事件监听绑定到父元素,处理动态子元素:
- Item 1
- Item 2
运行 HTML
document.getElementById('list').addEventListener('click', function(event) {
if (event.target.tagName === 'LI') {
console.log('点击了:', event.target.textContent);
}
});
// 动态添加的 li 元素也会自动拥有事件响应
八、其他要点
解绑事件:使用 removeEventListener
const handler = () => { console.log('Click') };
btn.addEventListener('click', handler);
btn.removeEventListener('click', handler);
匿名函数问题:匿名函数无法通过 removeEventListener 解绑。
被动事件监听器:优化滚动性能
window.addEventListener('scroll', function(e) {
// 逻辑代码
}, { passive: true });
通过掌握这些基础知识,你可以实现丰富的交互功能!建议通过实际项目练习加深理解。
栏 目:JavaScript
本文标题:js中基本事件的总结(onclick、onblur、onchange等)
本文地址:https://zz.feitang.co/wangluobiancheng/3214.html
您可能感兴趣的文章
- 07-25如何使用 Deepseek 写的uniapp油耗计算器
- 07-25JavaScript其他类型的值转换为布尔值的规则详解
- 07-25JavaScript实现给浮点数添加千分位逗号的多种方法
- 07-25ReactNative环境搭建的教程
- 07-25JavaScript获取和操作时间戳的用法详解
- 07-25通过Vue实现Excel文件的上传和预览功能
- 07-25Node使用Puppeteer监听并打印网页的接口请求
- 07-25在Node.js中设置响应的MIME类型的代码详解
- 07-25Vue3解决Mockjs引入后并访问404(Not Found) 的页面报错问题
- 07-25如何利用SpringBoot与Vue3构建前后端分离项目


阅读排行
推荐教程
- 04-23JavaScript Array实例方法flat的实现
- 04-23Vue3使用v-if指令进行条件渲染的实例代码
- 04-23THREE.JS使用TransformControls对模型拖拽的代码实例
- 07-21JavaScript判断数据类型的四种方式总结
- 07-22JavaScript随机数生成各种技巧及实例代码
- 07-21JavaScript检查变量类型的常用方法
- 07-21基于vue3与supabase系统认证机制详解
- 04-23vue3+ts项目搭建的实现示例
- 07-21JavaScript双问号操作符(??)的惊人用法总结大全
- 07-22使用Node.js实现GitHub登录功能





