社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

Jquery表单提交:无限循环

moonninja • 4 年前 • 531 次点击  

大家好,大家好。

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

我有一个带有表单的普通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
 
531 次点击  
文章 [ 2 ]  |  最新文章 4 年前