当前位置:首页 > 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构造函数可以创建带数据的自定义事件,传递额外信息给事件监听器。

js实现event

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移除已注册的事件监听器,需确保回调函数是同一引用。

js实现event

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()阻止事件冒泡。

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

标签: jsevent
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…