元素mousedown事件里调用 alert 等阻塞方法会阻止click 事件的执行?

风动之石 2015-08-19 05:48:27
我在btn元素上添加了 onclick 和 onmousedown 事件,但是如果在 onmousedown 事件里执行 click 或者 confirm 等方法后,btn 元素的 onclick 方法就不执行,请问这是什么原理?


<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<button id="btn">btn</button>
<script type="text/javascript">
var btn = document.getElementById('btn');
btn.onclick = function () {
btn.style.backgroundColor = 'red';
}
btn.onmousedown = function () {
alert(1); // 或者 用 confirm 等阻塞的方法
}
</script>
</body>
</html>
...全文
290 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
DaveLeeCN 2015-08-24
  • 打赏
  • 举报
回复
alert弹出的对话是浏览器内置的样式,几乎无法修改,焦点转移的话可以使用模态框,也就是自定义的对话框
风动之石 2015-08-23
  • 打赏
  • 举报
回复
引用 1 楼 clark_kidd 的回复:
你按钮按下去,弹出alert框,焦点转移到弹出框上,mouseup 的动作是在弹出框上发生的 所以,你并没有对该对象做一个完整的 click 动作(mousedown+mouseup)
感谢讲解,请问有没有哪些理论、书籍或者规范上有“弹出alert框焦点转移”相关的知识?我想多了解了解。
香蕉猪 2015-08-21
  • 打赏
  • 举报
回复
click=mousedown+mouseup
clark_kidd 2015-08-20
  • 打赏
  • 举报
回复
你按钮按下去,弹出alert框,焦点转移到弹出框上,mouseup 的动作是在弹出框上发生的 所以,你并没有对该对象做一个完整的 click 动作(mousedown+mouseup)

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧