gpt4 book ai didi

javascript - onmousedown 事件停止输入焦点

转载 作者:行者123 更新时间:2023-11-30 05:32:47 27 4
gpt4 key购买 nike

我正在处理 mousedown 和 oncontextmenu 事件以防止文本和图像选择、右键单击和拖动。代码如下——

<body oncontextmenu="return false;" onmousedown="event.preventDefault ? event.preventDefault() : event.returnValue = false"> 
<input type="text" name="testInput" id="testInput">
</body>

我想问题是它也阻止了对输入元素的关注,因为我阻止了 onmousedown 事件的默认值和返回 false,所以它不会让控制切换到输入焦点,所以我不能在其中输入任何内容。我尝试通过以下代码对其进行调试。

<script type="text/javascript">
$(function(){
$( "#testInput" ).on("focus",function(){
console.log("input focused");
});
});
</script>

当我从正文中删除 onmousedown 属性时,它会在 cosole 上给我所需的消息。

任何帮助...在此先感谢。

最佳答案

您可以检查 mousedown/contextmenu 事件是否在任何内部元素上发生,如果是,则允许默认操作,如果不是,则使用下面的方法阻止默认操作

document.getElementsByTagName("div")[0].addEventListener("mousedown",function(e){
if(e.target.id=="testInput"){

} else{
e.preventDefault();
}

});

document.getElementsByTagName("div")[0].addEventListener("contextmenu",function(e){
if(e.target.id=="testInput"){

} else{
e.preventDefault();
}

});

Check the Fiddle

关于javascript - onmousedown 事件停止输入焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25863192/

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