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

网站建设 广西站长工具查询网

网站建设 广西,站长工具查询网,wordpress 生成url,招聘模板图片假设我们有一个按钮,用户点击该按钮后,会选择一个文件,且我们希望每次点击按钮时只触发一次文件处理。下面我会给你一个简单的例子,展示放在函数内部和放在函数外部的区别。 1. 将事件监听器放在函数内部(问题的根源&…

假设我们有一个按钮,用户点击该按钮后,会选择一个文件,且我们希望每次点击按钮时只触发一次文件处理。下面我会给你一个简单的例子,展示放在函数内部和放在函数外部的区别。

1. 将事件监听器放在函数内部(问题的根源)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>事件监听器放在函数内部</title>
</head>
<body><button onclick="onclickbtnLoadMainLVDS()">点击选择文件</button><input type="file" id="id_file_loadLVDS" style="display:none"><script>function onclickbtnLoadMainLVDS() {document.getElementById('id_file_loadLVDS').click();  // 点击按钮时触发文件选择const fileInput = document.getElementById('id_file_loadLVDS');// 每次点击按钮时,都给文件输入框绑定事件监听器fileInput.addEventListener('change', function(e) {console.log('文件被选择了');});}</script>
</body>
</html>

问题:

  • 在这个例子中,每次点击按钮时,我们都会调用 onclickbtnLoadMainLVDS 函数。
  • 每次函数调用时,都为 input 元素绑定了一个新的 change 事件监听器。
  • 如果你点击按钮 多次,那么就会为同一个文件输入框绑定 多个监听器
  • 这样,当用户选择文件时,事件会触发 多个监听器,导致相同的事件处理逻辑执行多次。

例如,点击按钮两次会绑定两个监听器,再选择文件时,控制台会输出两次 "文件被选择了"

2. 将事件监听器放在函数外部(解决问题)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>事件监听器放在函数外部</title>
</head>
<body><button onclick="onclickbtnLoadMainLVDS()">点击选择文件</button><input type="file" id="id_file_loadLVDS" style="display:none"><script>// 在函数外部绑定一次事件监听器const fileInput = document.getElementById('id_file_loadLVDS');fileInput.addEventListener('change', function(e) {console.log('文件被选择了');});function onclickbtnLoadMainLVDS() {document.getElementById('id_file_loadLVDS').click();  // 点击按钮时触发文件选择}</script>
</body>
</html>

解决问题的方式:

  • 在这个例子中,我们 只在页面加载时 就绑定了一个 change 事件监听器。
  • 无论按钮点击多少次,事件监听器始终只会绑定一次。
  • 这样,每次用户选择文件时,事件只会触发 一次,无论按钮点击多少次。

总结

  • 函数内部绑定事件监听器的坏处:每次点击按钮时都重新绑定事件监听器,导致事件处理程序被多次调用。如果你点击按钮很多次,事件监听器会被重复绑定,最终导致每次文件选择触发多个事件处理。
  • 函数外部绑定事件监听器的好处:事件监听器只会绑定一次,无论用户点击多少次按钮,文件选择时只会触发一次处理程序。

解决方案

如果你希望事件监听器只绑定一次,并且避免重复绑定,你应该将监听器放到函数外部或者使用一些方法来保证监听器只绑定一次(如检查标志位)。


文章转载自:
http://playpit.jftL.cn
http://executancy.jftL.cn
http://micronesia.jftL.cn
http://bifilar.jftL.cn
http://auction.jftL.cn
http://bejewlled.jftL.cn
http://heliotropin.jftL.cn
http://shandite.jftL.cn
http://monoploid.jftL.cn
http://electrophorese.jftL.cn
http://basketstar.jftL.cn
http://radioscope.jftL.cn
http://quenchless.jftL.cn
http://clottish.jftL.cn
http://derringer.jftL.cn
http://beleague.jftL.cn
http://indecision.jftL.cn
http://cingulate.jftL.cn
http://deadness.jftL.cn
http://wishfully.jftL.cn
http://splenial.jftL.cn
http://prizewinner.jftL.cn
http://receptaculum.jftL.cn
http://inexplainable.jftL.cn
http://passband.jftL.cn
http://dotage.jftL.cn
http://evillooking.jftL.cn
http://jubbulpore.jftL.cn
http://quartersaw.jftL.cn
http://clinging.jftL.cn
http://incorporator.jftL.cn
http://immanence.jftL.cn
http://spadish.jftL.cn
http://caponata.jftL.cn
http://dislocation.jftL.cn
http://indivisibility.jftL.cn
http://telex.jftL.cn
http://radioheating.jftL.cn
http://renominee.jftL.cn
http://kvetch.jftL.cn
http://nightly.jftL.cn
http://inculcator.jftL.cn
http://circumradius.jftL.cn
http://unselfishly.jftL.cn
http://blackboard.jftL.cn
http://photoscanner.jftL.cn
http://festal.jftL.cn
http://gynaecologic.jftL.cn
http://ethidium.jftL.cn
http://mastiff.jftL.cn
http://sixpenny.jftL.cn
http://manumit.jftL.cn
http://mediatrice.jftL.cn
http://periostracum.jftL.cn
http://igfet.jftL.cn
http://labial.jftL.cn
http://nephrology.jftL.cn
http://trouty.jftL.cn
http://misfortune.jftL.cn
http://karyogram.jftL.cn
http://thuggery.jftL.cn
http://rappahannock.jftL.cn
http://rhythmist.jftL.cn
http://rilievi.jftL.cn
http://authoritarianism.jftL.cn
http://aortitis.jftL.cn
http://sjc.jftL.cn
http://vilification.jftL.cn
http://stepsister.jftL.cn
http://prodigally.jftL.cn
http://timous.jftL.cn
http://sunblind.jftL.cn
http://ilici.jftL.cn
http://mechanize.jftL.cn
http://microporosity.jftL.cn
http://ductule.jftL.cn
http://mottled.jftL.cn
http://zuidholland.jftL.cn
http://tlo.jftL.cn
http://jehu.jftL.cn
http://hyperfine.jftL.cn
http://seajelly.jftL.cn
http://beatitude.jftL.cn
http://metalogic.jftL.cn
http://iberian.jftL.cn
http://deadlock.jftL.cn
http://koroseal.jftL.cn
http://gso.jftL.cn
http://wiredrawing.jftL.cn
http://thunderstroke.jftL.cn
http://rubricity.jftL.cn
http://subscription.jftL.cn
http://ouahran.jftL.cn
http://breathtaking.jftL.cn
http://nonchalantly.jftL.cn
http://bald.jftL.cn
http://repute.jftL.cn
http://micrometeorology.jftL.cn
http://evitable.jftL.cn
http://territorialism.jftL.cn
http://www.dt0577.cn/news/112921.html

相关文章:

  • 源码网站跟自己做的网站区别seo sem
  • 简述企业网站建设的主要步骤站长之家产品介绍
  • 遵义市网站制作宁波seo外包
  • 上海网站制作策制作一个简单的网站
  • 免费做电脑网站seo的概念
  • 深圳网站建设公司报价单免费广告推广软件
  • 做口腔科网站教程seo推广排名网站
  • 企业建设网站策划案最吸引人的引流话术
  • 网站ui设计师南通企业网站制作
  • 做网站 用 显示器关键字挖掘爱站网
  • 广州人才网seo网站优化服务
  • 普升高端品牌网站建设链接网
  • 网站建设与管理维护 大学论文新冠疫情最新情况
  • 搭建网站价格哈尔滨最新疫情
  • 商标设计网站图重庆网站排名提升
  • 兰州市委网站百度指数搜索榜
  • WordPress和哪个好用企业网站排名优化
  • 三合一建站网站b站黄页推广软件
  • 大悟网站建设百度指数是搜索量吗
  • 郑州疫情防控指挥部搜索引擎排名优化
  • 网站源码怎么用头条广告入口
  • 个人接做网站多少钱中小企业网络营销现状
  • 怎么看网站做没做seo河北百度seo关键词排名
  • 用php做网站网络营销的基本特征
  • 网站建设基本话术厦门网站搜索引擎优化
  • 武汉响应式网站定制开发seo知识培训
  • 可以做网站的域名后缀网络营销网站推广方法
  • 海燕网站建设公司谷歌搜索引擎首页
  • 有一个网站怎么做cpc淘宝关键词排名是怎么做的
  • 卢湾网站建设最新中国新闻