当我将鼠标悬停在按钮上时,onmouseover激活的功能会在不到一秒的时间内连续触发。我只希望它开火一次。
我需要在按钮上使用onmouseover来调用提交函数,因为我不能使用onclick,因为它会干扰另一个称为onclick的函数。如果我使用onmouseout可以正常工作,并且只能触发一次,但是onmouseout对于我的目的并不令人满意。我尝试了其他事件处理程序,包括onmouseenter和onmousedown,但是它们遇到相同的问题。我也尝试过:onmouseover =“ submitForm(); button.onmouseover = null;”
<script language="javascript" type="text/javascript">
function submitForm() {
$("#pform").submit();
}
</script>
<input type="button" onmouseover="submitForm();" />
将鼠标悬停在该按钮上时,该功能连续每秒触发几次。我只希望它开火一次。
最佳答案
您可以使用简单的逻辑来检查鼠标悬停事件是否是第一次进入。使用本地存储,如果最初未设置本地存储,则这是鼠标悬停事件的第一次。
否则,如果本地存储已设置为true,则不要触发表单提交。
<script language="javascript" type="text/javascript">
function submitForm() {
if(sessionStorage.getItem("mouse_over") == undefined){
sessionStorage.setItem("mouse_over","true");
$("#pform").submit();
}else{
}
}
</script>
<input type="button" onmouseover="submitForm();" />
关于javascript - 如何防止鼠标悬停功能持续触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58080025/