내 첫 번째 JQTouch 응용 프로그램 작성. #login
에서 #home
으로 이동하면 JSON ajax 호출이 성공적으로 수행되지만 pageAnimationEnded
이벤트는 무한 루프에있는 것으로 보입니다. AJAX로 전환 JQuery와 가로 채서jquery/jqtouch getJSON을 호출하면 무한 루프가 발생합니까?
$(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
});
});
});
로그인 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>
어떤 힌트
을 감상 할 수있다, 사전에 감사합니다! :-)UPDATE
은 분명히 .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);
});
});
});
필자는 이것이 다소 우회적 인 해결책이라고 생각합니다. 다시 말하지만, 아래에서 언급했듯이, 나는 아약스 전체 호출 (모든 아약스 호출에서 호출되기 때문에 성능 문제가있을 경우)을 피하고 초기 #login 아약스 호출에 콜백을 제공한다. – brad