首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery的文档在诺基亚上准备好了吗?(警报修复了诺基亚中的jQuery。建议替代方案?)

jQuery的文档在诺基亚上准备好了吗?(警报修复了诺基亚中的jQuery。建议替代方案?)
EN

Stack Overflow用户
提问于 2011-07-25 08:47:21
回答 1查看 140关注 0票数 0

我有一些jQuery运行在一个移动网站上,做一些布局计算和调整一些元素的大小。

这在我们支持的浏览器上运行得很好--即使是诺基亚的浏览器--但后来我收到报告说诺基亚出现了问题。

然后我意识到我的E72的系统软件是去年年底最后一次更新,所以继续下载了最新的版本。现在,bug出现了。

在经历了向函数添加警报的常见JS调试过程之后,我发现如果我在执行所有布局计算和调整大小的函数中触发警报,那么它就可以工作!如果我省略了警报,什么也不会发生。

在过去,我在IE中偶尔也会遇到类似的情况,无论出于什么原因,IE都需要让JS“暂停”才能赶上它。通常的技巧是在设置为0的setTimeout中对我遇到问题的函数进行包装。

我在诺基亚上试过了,但没成功。然后我试了1秒,10秒,但还是没有成功。只有警报才能让它工作。

关于这个问题有什么理论吗?JS警报在计时JS函数方面是否做了一些事情,这些JS函数可能会被警报或setTimeout以外的其他功能复制

更新:

每个请求的示例代码。这是在它从document ready触发的函数中。

代码语言:javascript
复制
var extraWidths = $icon.width() + $button.width() + 20 + 5; 
var containerWidth = $panel.width();
var percentWidth = 100 - ( Math.floor((extraWidths/containerWidth)*100) );
$searchInput.css('width',percentWidth+'%');
alert('hello world'); // if I add this, Nokia works correctly. 

我正在做的是,在文档呈现之后,我计算一些元素的宽度,从父容器的总宽度中减去它,然后调整其中的一个输入字段以占用剩余的空间(设置为百分比宽度)。

这在Webkit,Firefox,BlackBerry (OS5和OS6)上运行良好,所以我不认为这是一个代码错误,但希望有人已经遇到了解决办法(除了警报)。

更新2:

经过进一步的研究,我有了一个新的理论:诺基亚网页浏览器不能正确地通知jQuery文档已经准备好了。

我发现,包装需要计算DOM元素尺寸的jQuery只有在我将其包装在setTimeout中时才起作用。这不是一个任意的时间延迟……我需要确保时间延迟比浏览器正确呈现DOM所花费的时间要长。由于我不可能知道给定的设备速度和网络速度,我必须坚持1-2秒的时间,这不会减少它。

那么,我的新问题是:有没有人知道jQuery的document ready在诺基亚设备上不能正常工作的问题?如果是这样,那么不幸的是,我们需要重新考虑我们对jQuery的使用。

EN

回答 1

Stack Overflow用户

发布于 2012-09-18 20:25:42

在您的主体中添加id,并使用$(document.getElementById('bourbodyid')).ready(function(),而不是$(document).ready(function()

也许与其他方法相比,解决方法并不是那么错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6810814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档