2011-11-17 65 views
0


我有两个div,我们将他们全部id = 1和id = 2,以方便。 有一个确定“one”或“two”应显示的ajax调用。两者都不会显示。
多个Ajax调用/ JQuery/JQueryMobile

DIV一个=消息
DIV 2 =输入框

步骤A)的通用AJAX调用填充信息根据需要,使在div可见。
步骤B)然后我使用JQuery来确定div是否可见。
如果是这样,请让div二不可见。否则,使div二可见。

问题是,它的工作原理,但步骤B没有看到HTML中的变化,即使它发生了......直到第二个事件被触发(按键或自动完成)。

我在想,如果这可能是因为JQuery Mobile必须首先更新下面的字段。

简化代码如下所示: $(文件)。就绪(函数(){

$('input[name="foo"]').keyup(function() { 
     MakeAjaxRequest(ajax params); //this updates div 1 and makes it visible 
     if ($('#one').is(':visible')){     
      $('#two').hide(); 
     } else { 
      $('#two').show(); 
     } 
    }); 
}); 

我已经能够隐藏和显示在jQuery Mobile的其他东西没有问题

PS:我也曾尝试Ajax调用后做的DIV 1 .REFRESH()

感谢

回答

1

阿贾克斯重新!任务是异步的,你的可见检查将在你的MakeAjaxRequest函数的回调更新html之前完成。

+0

我发现jquery有一个ajaxsuccess函数,它为我工作并替换了ajax。谢谢! – Cymbals