大家好,大家好。
我有一个问题,我已经有了一个有效的答案。我在找答案的解释。
我有一个带有表单的普通html页面,表单的submit按钮在其onclick事件上有功能
例如
<button type="submit" class="btn btn-danger" onclick="envoke()">Login</button>
在我的javascript文件中,我有以下代码
function envoke ()
{
$('form:first').submit((e) => {
e.preventDefault();
loginAnimation();
})
}
function loginAnimation()
{
let w = window.innerWidth;
$('#DIVbody').css({"position" : "relative"}).animate({left : "-=" + w + "px"}),2000,function () {
$('form').first().submit();
}
}
但是,这段代码会导致无限循环,因为envoke()函数会不断被调用,而loginImation()函数会依次被调用。
代码的思想是防止表单的正常提交,然后执行需要2秒钟才能完成的动画,动画完成后应该提交表单。
我通过修改loginImation()函数中的代码找到了一个修复方法:
$('form').first().submit();
更改为
$('form').off().first().submit();
而且有效!!
但是我不知道为什么,为了我的生命,我无法弄清楚。
有谁能给我一个简单的解释或材料,我可以去研究,以便得到一个更好的主意。
另外,这是我正在做的一个老项目,我记得envoke()和loginAnimation()函数曾经工作得很好,现在(大约2个月后)它不工作了,我必须添加一点额外的Jquery才能使它工作,好奇心正在扼杀我为什么这样做。