当前位置: 代码网 > it编程>编程语言>Javascript > js中基本事件的总结(onclick、onblur、onchange等)

js中基本事件的总结(onclick、onblur、onchange等)

2025年02月13日 Javascript 我要评论
js中的基本事件总结:特定的场景下发生的一个动作:事件;事件=函数(),事件发生会触发函数执行。\一、什么是事件?事件是用户在网页上的交互行为(如点击、滚动、按键)或浏览器自动触发的行为(如页面加载完

js中的基本事件总结:

特定的场景下发生的一个动作:事件;事件=函数(),事件发生会触发函数执行。\

一、什么是事件?

事件是用户在网页上的交互行为(如点击、滚动、按键)或浏览器自动触发的行为(如页面加载完成)。javascript 通过 事件监听 来响应这些行为。

二、常见事件类型

属性

当以下情况发生时,出现此事件

ff

n

ie

onabort

图像加载被中断

1

3

4

onblur

元素失去焦点

1

2

3

onchange

用户改变域的内容

1

2

3

onclick

鼠标点击某个对象

1

2

3

ondblclick

鼠标双击某个对象

1

4

4

onerror

当加载文档或图像时发生某个错误

1

3

4

onfocus

元素获得焦点

1

2

3

onkeydown

某个键盘的键被按下

1

4

3

onkeypress

某个键盘的键被按下或按住

1

4

3

onkeyup

某个键盘的键被松开

1

4

3

onload

某个页面或图像被完成加载

1

2

3

onmousedown

某个鼠标按键被按下

1

4

4

onmousemove

鼠标被移动

1

6

3

onmouseout

鼠标从某元素移开

1

4

4

onmouseover

鼠标被移到某元素之上

1

2

3

onmouseup

某个鼠标按键被松开

1

4

4

onreset

重置按钮被点击

1

3

4

onresize

窗口或框架被调整尺寸

1

4

4

onselect

文本被选定

1

2

3

onsubmit

提交按钮被点击

1

2

3

onunload

用户退出页面

1

2

3

三、

三、事件处理的三种方式

1. html 属性方式(不推荐)

直接在 html 元素中定义事件:

<button onclick="alert('clicked!')">点击我</button>

运行 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);
});

七、事件委托

利用事件冒泡,将事件监听绑定到父元素,处理动态子元素:

<ul id="list">
  <li>item 1</li>
  <li>item 2</li>
</ul>

运行 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 });

通过掌握这些基础知识,你可以实现丰富的交互功能!建议通过实际项目练习加深理解。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com