gpt4 book ai didi

javascript - onmousedown 事件对象行为异常

转载 作者:行者123 更新时间:2023-11-28 13:10:54 24 4
gpt4 key购买 nike

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>testing</title>
</head>
<body>
<input type="checkbox" id="test">
<script>
var t = document.getElementById("test");
t.onmousedown = function(e) {
if (e.button === 0)
t.checked = true;
else if (e.button === 2)
t.checked = false;

alert(e.button);
}
</script>
</body>
</html>

如果我将 alert(e.button); 行保留在原来的位置,则单击复选框的行为将按预期进行:所有左键单击都会选中该复选框,而所有右键单击都会取消选中该复选框。

如果我删除代码alert(e.button);,那么突然间,左键单击将选中该复选框,然后立即取消选中该复选框,而右键单击将不会执行任何操作但打开上下文菜单。

为什么会发生这种情况?我该怎么做才能使它像我在第一段中描述的那样运行,但没有 alert(e.button);

最佳答案

您可以尝试将点击事件分离为 onlick (左键单击)和 oncontextmenu (右键单击)。另请记住 return false; 以防止显示内容菜单。

var t = document.getElementById("test");

t.onclick = function(e) {
t.checked = true;
}
t.oncontextmenu = function(e){
t.checked = false;
return false;
}
  <html>
<head>
<meta charset="utf-8">
<title>testing</title>
</head>
<body>
<input type="checkbox" id="test">
</body>
</html>

关于javascript - onmousedown 事件对象行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42569722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com