当我将鼠标悬停在按钮上时,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/

10-12 20:38