gpt4 book ai didi

jquery/jqtouch getJSON 调用导致无限循环?

转载 作者:行者123 更新时间:2023-12-01 01:20:10 26 4
gpt4 key购买 nike

编写我的第一个 JQTouch 应用程序。当我从 #login 转到 #home 时,JSON ajax 调用成功发生,但 pageAnimationEnded 事件似乎处于无限循环中。

        $(function(){

$('#login').ajaxComplete(function (e, xhr, settings) {
jQT.goTo('#home', 'flip');
});

$('#home').bind('pageAnimationEnd', function(e, info){

alert('animation ended'); //infinite loop happens in here

$.getJSON('/test', function(data) {
alert('json: ' + data); //this returns data successfully
});

});

});

JQuery 拦截并转换为 AJAX 的登录 POST 调用:

  <div id="login" class="current">
<div class="toolbar">
<h1>testapp</h1>
<a class="button slideup" id="infoButton" href="#about">About</a>
</div>
<form:form commandName="user" action="/login/authenticate">
<ul class="edit rounded">
<li><form:input path="email"/></li>
<li><form:password path="password" /></li>
<li>Remember Me<span class="toggle"><input type="checkbox" /></span></li>
</ul>
<a style="margin:0 10px;color:rgba(0,0,0,.9)" href="" class="submit whiteButton">Login</a>
</form:form>
</div>

如有任何提示,我们将不胜感激,提前致谢! :-)

更新

显然 .ajaxComplete 也接收其他元素的事件。我添加了一个守卫来过滤我想要的事件:

         $(document).ready(function(e){
alert('document ready');

$('#login').ajaxComplete(function (e, xhr, settings) {

if(settings.url == '/login/authenticate') { //add check to prevent infinite loop
alert('jqt goto ' + settings.url);
jQT.goTo('#home', 'flip');
}
});

$('#home').bind('pageAnimationEnd', function(e, info){

alert('animation ended');

$.getJSON('/test', function(data) {
alert('json: ' + data);
});

});
});

最佳答案

是的,这肯定会导致无限循环。假设初始 pageAnimationEnd 以某种方式触发,这就是您正在做的事情:

动画结束,因此您的绑定(bind)方法会执行 ajax 调用。该 ajax 调用在完成时注册了一个回调 ajaxComplete(),表示“回家”。这个 go home 可能会执行某种动画,完成后会触发您的 ajax 调用。该 ajax 调用在完成时注册了一个回调 ajaxComplete(),表示“回家”...等等。

您可能想要的不是在所有 ajax 请求上调用的通用 ajaxComplete(),而是登录代码上执行单个调用的特定函数。我不太确定你想要实现什么目标,所以很难给你解决问题的方法。如果我正确理解所有内容,这应该足以解释您的问题

关于jquery/jqtouch getJSON 调用导致无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3423984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com