jquery - 在运行 iOS 3.0 的 iPhone 3G 上,Phonegap 应用程序中更新 DOM 的调用被忽略

标签 jquery iphone dom cordova

我正在使用phonegap/jquery/jqtouch来开发iPhone应用程序。使用运行 iOS 3.0.1 的 iPhone 3G 测试应用程序时,对 DOM 进行更改的 jquery 调用(例如“append()”)无法一致工作。

我在调用“append”之前有一个警报调用,并且在调用“append”之后立即有另一个警报调用。两个警报都一致地工作,但“附加”调用是随机工作的。有时 DOM 会更新,有时不会。这些调用也不会导致错误。就好像他们被忽视了。

在装有 iOS 4.0.2 的 iPhone 4 上,该应用程序可以完美运行。

该应用程序需要在 iOS 3.0 及更高版本上运行,因此我很犹豫是否将 3G 手机升级到 iOS 4.0,因为我没有办法将其恢复到 iOS 3.0.1。

我尝试过 3.2 和 4.0 的基础 SDK。 “iPhone OS 部署目标”设置为“iPhone OS 3.0”。

有人知道会发生什么吗?关于如何调试这个问题有什么建议吗?

谢谢!

导致问题的代码:

var sample = $('<div></div>').text('sample');
navigator.notification.alert("test 1", "Test", "Dismiss");
$('#test').append(sample);
navigator.notification.alert("test 2", "Test", "Dismiss");

警报“test 1”和“test 2”都会出现,但文本“sample”仅有时出现。

我发现以下线程描述了该问题。该问题是由于手机和访问 DOM 速度慢引起的: http://groups.google.com/group/phonegap/browse_thread/thread/81460667fd771735

基于该主题,我将尝试以下建议,并将在此处发布它是否有效: $('mySelector').get(0).innerHTML = '我的html代码';

最佳答案

mobile safari/uiwebview(至少3.2及以下版本)的innerHTML存在错误: http://blog.johnmckerrell.com/2007/03/07/problems-with-safari-and-innerhtml/

我使用了该博客中的解决方法。

关于jquery - 在运行 iOS 3.0 的 iPhone 3G 上,Phonegap 应用程序中更新 DOM 的调用被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644474/

相关文章:

jquery - 使用 asp.net mvc 自动完成下拉列表

javascript - 获取字符串的一部分?

javascript - Backbone Collection Fetch - 使用自定义错误处理程序覆盖 ajax 错误处理程序

iphone - 如何提取安装了您的 iOS 应用程序的 Facebook 好友

javascript - 如果我的 mouseenter 函数已经执行,如何使其不执行?

javascript - 根据 Firebase 数据创建列表

javascript - 检查 HTML5 联系表单中的空白字段

ios - 为什么我们在 ios 中使用枚举

沙盒中的 iPhone APNS 设备 token 与生产环境中的 iPhone APNS 设备 token

javascript - 如何将本地文件定义为 DOM 对象?