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

156 阅读3分钟

事件是用户在网页上的交互行为如点击、滚动、按键等,JavaScript通过事件监听来响应这些行为,这里为大家分享一下,js中的基本事件,方便大家选择合适的触发形式

目录

**

GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
【 如果你想靠AI翻身,你先需要一个靠谱的工具!  】

js中的基本事件总结:

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

一、什么是事件?

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

二、常见事件类型

属性当以下情况发生时,出现此事件FFNIE
onabort图像加载被中断134
onblur元素失去焦点123
onchange用户改变域的内容123
onclick鼠标点击某个对象123
ondblclick鼠标双击某个对象144
onerror当加载文档或图像时发生某个错误134
onfocus元素获得焦点123
onkeydown某个键盘的键被按下143
onkeypress某个键盘的键被按下或按住143
onkeyup某个键盘的键被松开143
onload某个页面或图像被完成加载123
onmousedown某个鼠标按键被按下144
onmousemove鼠标被移动163
onmouseout鼠标从某元素移开144
onmouseover鼠标被移到某元素之上123
onmouseup某个鼠标按键被松开144
onreset重置按钮被点击134
onresize窗口或框架被调整尺寸144
onselect文本被选定123
onsubmit提交按钮被点击123
onunload用户退出页面123

三、

三、事件处理的三种方式

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(推荐)

``


```js
````btn.addEventListener(``'click'`` ,  ``function``(event) {`

`  ``console.log(``'第一次点击'``);`

`});`

 

`btn.addEventListener(``'click'``, () => {`

`  ``console.log(``'第二次点击'`` );  ``//`

优点:支持多个监听器、可控制事件阶段(捕获/冒泡)

四、事件对象 (event)

事件处理函数会自动接收一个 event 对象,包含事件相关信息: ``


```js
````element.addEventListener('click', function(event) {`

`  ``console.log(event.target); // 触发事件的元素`

`  ``console.log(event.clientX, event.clientY); // 鼠标坐标`

`  ``event.preventDefault(); // 阻止默认行为(如表单提交)`

`  ``event.stopPropagation(); // 阻止事件冒泡`

`});`

五、事件冒泡与捕获

  • 冒泡 (Bubbling) :事件从目标元素向上传递到根元素(默认阶段)。
  • 捕获 (Capturing) :事件从根元素向下传递到目标元素 ``

```js
```// 第三个参数为 true 表示捕获阶段,false 表示冒泡阶段(默认)
parent.addEventListener('click', () => {
  console.log('父元素捕获阶段');
}, true);
 
child.addEventListener('click', () => {
  console.log('子元素冒泡阶段');
});

```js

六、表单事件示例

``

```const form = document.querySelector('form');
form.addEventListener('submit', function(event) {
  event.preventDefault(); // 阻止表单默认提交
  const input = document.querySelector('#username');
  console.log('输入的值:', input.value);
});

```js

七、事件委托

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

```<ul id="list">
  <li>Item 1</li>
  <li>Item 2</li>
</ul>


运行 HTML ``


```js
```document.getElementById('list').addEventListener('click', function(event) {
  if (event.target.tagName === 'LI') {
    console.log('点击了:', event.target.textContent);
  }
});
// 动态添加的 li 元素也会自动拥有事件响应

八、其他要点 解绑事件:使用 removeEventListener ``


```js
```const handler = () => { console.log('Click') };
btn.addEventListener('click', handler);
btn.removeEventListener('click', handler);

匿名函数问题:匿名函数无法通过 removeEventListener 解绑。

被动事件监听器:优化滚动性能 ``


```js
```window.addEventListener('scroll', function(e) {
  // 逻辑代码
}, { passive: true });

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