当前位置: 首页 > news >正文

做网站的好公司有哪些网站建设 贴吧

做网站的好公司有哪些,网站建设 贴吧,宁波seo教程app推广,景观建设网站事件监听 ✅ 事件监听的基本语法 element.addEventListener(event, function, useCapture);element:目标元素。 event:事件类型,如 ‘click’、‘mouseover’、‘keydown’ 等。 function:事件发生时执行的回调函数。 useCap…

事件监听

✅ 事件监听的基本语法

element.addEventListener(event, function, useCapture);

element:目标元素。

event:事件类型,如 ‘click’、‘mouseover’、‘keydown’ 等。

function:事件发生时执行的回调函数。

useCapture (可选):true 表示在捕获阶段触发事件,false 表示在冒泡阶段触发事件(默认)。

🧑‍💻 示例 1:点击事件

<button id="myButton">点击我</button><script>let button = document.getElementById('myButton');button.addEventListener('click', function() {alert('你点击了按钮!');});
</script>

✅ 解释:

当你点击按钮时,事件监听器会捕捉到 ‘click’ 事件并执行弹窗。

🧑‍💻 示例 2:鼠标移入事件

<div id="box" style="width:200px;height:200px;background-color:lightblue;">移入我看看
</div><script>let box = document.getElementById('box');box.addEventListener('mouseover', function() {box.style.backgroundColor = 'lightcoral';});box.addEventListener('mouseout', function() {box.style.backgroundColor = 'lightblue';});
</script>

✅ 解释:

鼠标移入 mouseover 时,背景颜色变红。

鼠标移出 mouseout 时,背景颜色恢复。

✅ 事件冒泡和事件捕获
事件冒泡:事件从目标元素开始,逐层向父级元素冒泡传递。

事件捕获:事件从最顶层的父元素开始,逐层向目标元素传递。

document.body.addEventListener('click', function() {console.log('body被点击了');
}, true); // 使用事件捕获document.getElementById('myButton').addEventListener('click', function() {console.log('按钮被点击了');
}, false); // 使用事件冒泡

✅ 解释:

如果 true,事件在捕获阶段执行。

如果 false,事件在冒泡阶段执行(默认)。

✅ 常见事件类型
鼠标事件:click、dblclick、mousedown、mouseup、mousemove

键盘事件:keydown、keyup、keypress

表单事件:submit、change、input、focus

窗口事件:resize、scroll、load、unload

e.preventDefault();

e.preventDefault(); 是 JavaScript 中阻止事件的默认行为的方法。它常用于表单、链接、按钮等事件处理中。

✅ 语法

element.addEventListener('event', function(e) {e.preventDefault();
});

e:事件对象,代表事件的详细信息。

preventDefault():阻止事件的默认行为。

✅ 实际应用场景

  1. 阻止链接跳转
document.querySelector('a').addEventListener('click', function(e) {e.preventDefault();console.log('链接被点击,但没有跳转');
});

场景: 链接点击后需要执行其他操作,而不是跳转到链接地址。

  1. 阻止表单提交
document.querySelector('form').addEventListener('submit', function(e) {e.preventDefault();console.log('表单提交已阻止');
});

场景: 在表单验证失败时阻止提交。

  1. 阻止右键菜单
document.addEventListener('contextmenu', function(e) {e.preventDefault();console.log('右键菜单已被阻止');
});

场景: 实现自定义右键菜单。

✅ 注意事项
preventDefault() 只阻止默认行为,不影响事件的传播。

如果要阻止事件冒泡,需要使用 e.stopPropagation()。

某些情况下,preventDefault() 无法生效,例如:

在 disabled 的按钮上点击。

在某些系统级别的浏览器操作中(如 F5 刷新)。

e.stopPropagation()

事件冒泡 是指当一个元素上的事件被触发时,事件会从目标元素向它的祖先元素逐级传播,直到到达 document 根节点的过程。

e.stopPropagation() 可以阻止事件向上冒泡,防止事件传播到父级元素。

✅ 事件冒泡的示意图
假设有以下 HTML 结构:

<div id="grandparent"><div id="parent"><button id="child">点击我</button></div>
</div>

如果在每个元素上都绑定了 click 事件:

document.getElementById('grandparent').addEventListener('click', function() {console.log('祖父元素被点击');
});document.getElementById('parent').addEventListener('click', function() {console.log('父元素被点击');
});document.getElementById('child').addEventListener('click', function() {console.log('子元素被点击');
});
点击按钮后的结果:

子元素被点击
父元素被点击
祖父元素被点击
这就是事件冒泡的过程:事件从子元素向上层父级依次触发。

✅ 阻止事件冒泡
使用 e.stopPropagation() 可以阻止事件继续向上传播。

document.getElementById('child').addEventListener('click', function(e) {console.log('子元素被点击');e.stopPropagation(); // 阻止事件冒泡
});

点击按钮后的结果:

子元素被点击
父元素和祖父元素的事件不再触发。

✅ 应用场景

  1. 模态框中的事件阻止冒泡
    在弹窗中点击关闭按钮时,可能不希望点击事件冒泡到背景导致弹窗关闭:
document.getElementById('modal').addEventListener('click', function() {console.log('关闭弹窗');
});document.getElementById('close-btn').addEventListener('click', function(e) {console.log('点击了关闭按钮');e.stopPropagation();
});

点击关闭按钮时只会输出 “点击了关闭按钮”,不会触发背景的关闭事件。

  1. 阻止导航栏中的事件冒泡
    在下拉菜单点击时,不希望触发外部 document 的点击事件:
document.getElementById('dropdown').addEventListener('click', function(e) {console.log('点击了下拉菜单');e.stopPropagation();
});document.addEventListener('click', function() {console.log('关闭下拉菜单');
});
  • 点击菜单时不会关闭菜单,只有点击菜单外部时才会触发关闭逻辑。
http://www.dtcms.com/a/580415.html

相关文章:

  • 网站建设页面页脚怎么设置晨光文具店网站建设
  • 杭州大江东建设局网站便捷网站建设多少钱
  • 最新网站模板免费下载百度seo排名优化技巧分享
  • 网站建设包括哪些服务公司的企业诚信建设分析
  • 自己做彩票网站搜索引擎优化seo的英文全称是
  • 赣州做网站多少钱上海公司网站建设以子
  • 青岛做网站价格一个完整网页的制作
  • 深圳移动端网站建设模板店铺logo图片免费生成软件
  • 怎么套模板 网站模板四川做文学有关的网站
  • 网站数据泄露我们应该怎么做江苏 网站集约化建设方案
  • 网站排名优化+o+m免费wordpress 主题
  • 什么语言做网站最好网络营销销售
  • 网站打开的速度慢怎样学装修设计快速入门
  • 国外建筑设计网站推荐广州工商注册流程
  • 霸州 网络 网站建设网站建设实习招聘
  • 全国网站备案网站可以嵌入WordPress
  • 南宁哪些公司专业做网站厦门网站设计
  • a站插画品牌网
  • 南宁市网站开发公司店标logo设计
  • 深圳市富通建设工程有限公司网站注册会计师报名
  • 模仿茶叶的网站制作怎么做中英文版网站
  • 网站空间wordpress选择模板没
  • 常熟港口建设费申报网站wordpress仪表盘乱码
  • 湖州长兴做网站wordpress字数
  • logo设计大全网站优化内容
  • 加强网站内容建设创新济源网站建设的公司
  • 网站建设编辑工作总结天津住房城乡建设网站
  • 采购公告 校园网站建设上海待遇好的十大国企排名
  • 濮阳市做网站公司wordpress更改忘记密码样式
  • 怎么知道网站被百度k了广东网站开发需要多少钱