Py学习  »  Jquery

Jquery表单提交:无限循环

moonninja • 5 年前 • 605 次点击  

大家好,大家好。

我有一个问题,我已经有了一个有效的答案。我在找答案的解释。

我有一个带有表单的普通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才能使它工作,好奇心正在扼杀我为什么这样做。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52506
 
605 次点击  
文章 [ 2 ]  |  最新文章 5 年前