900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【javaScript】探讨 监听input输入框的失去焦点事件与按钮点击事件执行的顺序问题

【javaScript】探讨 监听input输入框的失去焦点事件与按钮点击事件执行的顺序问题

时间:2023-08-17 23:36:32

相关推荐

【javaScript】探讨 监听input输入框的失去焦点事件与按钮点击事件执行的顺序问题

1.问题描述

在input输入框输入一段文字之后,点击发送按钮会发现,只触发了失去焦点事件,按钮点击事件并没有被触发,当再次点击按钮的时候,事件才会被触发,这明显不是我们想要的,我们来看看怎么解决

2.代码

<body><div id="divContainer"><input class="inTest" autofocus/><button class="btn-send">发送</button></div><script type="text/javascript">window.onload = function(){var inputText = document.querySelector(".inTest");var btn = document.querySelector(".btn-send");inputText.onblur = function(){alert("-----blur----");};btn.onclick = function(){alert("-----click----");}}</script></body>

3.效果图

4.解决办法

由于失去焦点事件发生的顺序在点击事件之前,这样我预期的触发点击事件的效果就达不到,为了达到触发点击事件,我在失去焦点时间里面加了setTimeout()方法,让失去焦点事件延迟300毫秒再触发,这样就调换了失去焦点和按钮点击事件的顺序,做到我所期待的效果

5.解决之后的代码

<body><div id="divContainer"><input class="inTest" autofocus/><button class="btn-send">发送</button></div><script type="text/javascript">window.onload = function(){var inputText = document.querySelector(".inTest");var btn = document.querySelector(".btn-send");inputText.onblur = function(){var timer = setTimeout(function(){alert("-----blur----");},300)};btn.onclick = function(){alert("-----click----");}}</script></body>

6.解决之后的效果图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。