当前位置:首页 > JavaScript

js实现event

2026-02-02 04:17:11JavaScript

事件监听与触发

在JavaScript中实现事件处理通常涉及事件监听和事件触发。可以通过addEventListener方法监听DOM元素的事件,或自定义事件通过Event构造函数和dispatchEvent方法触发。

// 监听点击事件
document.getElementById('button').addEventListener('click', function(event) {
    console.log('Button clicked');
});

// 自定义事件触发
const customEvent = new Event('customEvent');
document.dispatchEvent(customEvent);

自定义事件对象

通过CustomEvent构造函数可以创建带数据的自定义事件,传递额外信息给事件监听器。

const event = new CustomEvent('build', { detail: { time: new Date() } });

document.addEventListener('build', function(e) {
    console.log('Event triggered at:', e.detail.time);
});

document.dispatchEvent(event);

事件委托

事件委托利用事件冒泡机制,在父元素上监听子元素的事件,适用于动态添加的元素或大量子元素。

document.getElementById('parent').addEventListener('click', function(event) {
    if (event.target.matches('button.child')) {
        console.log('Child button clicked');
    }
});

移除事件监听

使用removeEventListener移除已注册的事件监听器,需确保回调函数是同一引用。

function handleClick() {
    console.log('Clicked once');
    document.removeEventListener('click', handleClick);
}

document.addEventListener('click', handleClick);

事件冒泡与捕获

事件传播分为捕获阶段和冒泡阶段,可通过addEventListener的第三个参数控制监听阶段。

// 捕获阶段触发
document.getElementById('outer').addEventListener('click', function() {
    console.log('Outer captured');
}, true);

// 冒泡阶段触发(默认)
document.getElementById('inner').addEventListener('click', function() {
    console.log('Inner bubbled');
});

阻止默认行为与冒泡

调用event.preventDefault()阻止默认行为(如表单提交),event.stopPropagation()阻止事件冒泡。

js实现event

document.getElementById('link').addEventListener('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    console.log('Link click handled without navigation');
});

标签: jsevent
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…