iPad和jQuery hide()在页面加载上有很大的延迟

时间:2011-02-17 15:09:01

标签: javascript jquery iphone ipad

我写了一些jQuery,它在页面加载时隐藏了某个元素,它在mac上的浏览器上无缝地工作,但是当我在iPad上尝试它时,当元素出现时会有一个明显的弹出页面然后消失。这是导致问题的iPad,在这种情况下,我可能不得不重新考虑我的页面加载过程。

隐藏我正在使用的元素:

$(document).ready(function() {
    $('#element').hide();
});

其他jQuery稍后会在点击内容时显示该元素,因此我可以使用css隐藏它,但在没有js的情况下不会很好地降级。

2 个答案:

答案 0 :(得分:4)

为什么不在声明它之后立即使用html标签的类(使用javascript )并使用CSS隐藏元素?

的Javascript

<script type="text/javascript">
document.documentElement.className = 'js';
</script>

Css规则(样式表中的,或者中的

.js #element{display:none;}

只需在页面<head>标记内添加上述内容,即可进行设置。

演示http://jsfiddle.net/C2jdX/

答案 1 :(得分:2)

要找出原因并解决原因,如果结果是棘手的话,您可以考虑在结束body标记之前使用内联脚本隐藏它,而不是通过ready处理程序。 E.g:

<!DOCTYPE html>
<html>
<head>
<!-- blah blah blah -->
<script src='path_to/jquery.js'></script>
</head>
<body>
<!-- blah blah blah -->
<div id='element'>...</div>
<!-- blah blah blah -->
<script>
    $('#element').hide();
</script>
</body>
</html>

只要脚本跟随相关元素的关闭,就应该找到它。

Live Example

我认为只有在脚本运行时才会隐藏它(渐进增强,那种事情)。

参考文献: