Javascript 动态更新div元素的内容需要两到三次尝试
我正在尝试更新div的内容,但它并不总是有效。我不确定这是否与我的问题有关,但我正在使用jquery mobile 背景: 我有一个选择菜单,用于选择位置。我还有一个按钮,用于获取所选位置的信息。Ajax用于获取数据,数据显示在我的页面上的div元素中。我发现我需要单击按钮两次才能更新div元素。奇怪的是,如果我在更新div之前添加了一个警报,它可以正常工作(即,我只需要按下一次按钮) 代码: 我最初是用我的Android EVO发现这个问题的,但我刚刚尝试了firefox,它也发生了 我怀疑这与.html()由于某种原因不能正常工作有关 有什么想法吗 谢谢 试试看:Javascript 动态更新div元素的内容需要两到三次尝试,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我正在尝试更新div的内容,但它并不总是有效。我不确定这是否与我的问题有关,但我正在使用jquery mobile 背景: 我有一个选择菜单,用于选择位置。我还有一个按钮,用于获取所选位置的信息。Ajax用于获取数据,数据显示在我的页面上的div元素中。我发现我需要单击按钮两次才能更新div元素。奇怪的是,如果我在更新div之前添加了一个警报,它可以正常工作(即,我只需要按下一次按钮) 代码: 我最初是用我的Android EVO发现这个问题的,但我刚刚尝试了firefox,它也发生了 我怀疑这
$("#page_id_name").page();
但我也认为Beta 2更新中有一种新方法:
作为一个实验,我刚刚更新了click处理程序,不使用ajax,而是直接更新div(我使用了一个计数器,当数字为奇数时显示“奇”,当数字为偶数时显示“偶”),每次都非常有效。我现在很困惑。我知道ajax正在工作,因为我在onError和onSuccessWeather处理程序中有警报。有什么想法吗?
#weatherSummary
元素始终存在,还是在某个时候生成的?我怀疑与未及时加载的东西有关。尝试在Firefox中检查JavaScript错误日志。这是个好主意。我直接在html中声明它,所以我希望它存在,但也许它不存在。顺便说一下,我刚刚调整了onSuccessWeather,将alert()放在.html(数据)之后,事情总是像这样正常工作。我将检查错误日志。谢谢。我没有看到任何javascript错误,但我确实看到了一些有趣的东西。我在javascript控制台中观察了Post和响应。帖子总是正确的,但有时回复没有更新(每次按下按钮,我都会得到不同的回复)。可能weather.php脚本有错误,并且返回了过时的数据,但我认为情况并非如此,因为如果我添加一个alert(),它总是有效的。jquerymobile的东西是否可能以某种方式阻止或破坏实际响应?谢谢Phil。我正在使用Beta 2。刚刚尝试了$(“#weatherSummary”).html(data.trigger(“create”);但它不起作用。我还试过$(“#weather”).page();没有成功。我只是在$(“#weatherSummary”).html(数据)附近添加了一个5秒的setTimeout作为一个实验,而问题从未发生过。在尝试setTimeout()之前,我正在使用firefox控制台查看XMLHttpRequests。帖子看起来总是很好,但只要出现问题,响应中就有过时的数据。我不明白为什么使用setTimeout会影响firefox作为响应数据显示的内容,这当然会影响div中显示的内容。伙计们,我不明白这一点,但问题似乎是我正在weather.php脚本中进行缓存。我禁用了它,现在一切正常。javascript警报和超时是如何实现这一点的,这一点毫无意义。我得挖迪珀把这一切整理好。如果可以,我会删除这篇文章,因为我不想浪费任何人的时间。
$("#page_id_name").page();
$( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" );
$("#weatherSummary").html(data).trigger( "create" );