【发布时间】:2012-09-15 03:30:22
【问题描述】:
我在移动网站上遇到了 jQuery slideDown()、show()、hide() 功能的问题。该功能适用于 Safari、Chrome 和 FF 的桌面版本。它也适用于用户代理设置为 iPhone 的 Safari。但是,当加载页面 iPhone (Safari) 时,该功能不起作用......当您选择应该切换显示/隐藏的链接时,没有任何反应(没有错误)。该网站使用以下版本的 jQuery 和 jQuery mobile:
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>
以下是脚本中引用的 HTML 示例以及 jQuery 脚本:
[HTML 示例]
<div id="body" class="body-content default-copy">
Sed eget vehicula dui. Ut feugiat, augue ac ullamcorper varius, tellus nunc aliquam...
<br>
<p class="body-content-more default-copy-hidden-more" style="float: right; width: 150px;
text-align: right; text-decoration: none;">
<a href="#" class="see_more" style="text-decoration: none;">> See More</a></p>
<br>
</div>
<div id="body" class="body-content default-copy-full" style="display: none;">
Sed eget vehicula dui. Ut feugiat, augue ac ullamcorper varius, tellus nunc aliquam
metus, sed cursus magna felis vel enim. Maecenas elementum, odio eget gravida suscipit,
felis diam aliquam magna, ut vestibulum augue magna in tortor. Sed nibh justo, iaculis
ac lacinia non, pellentesque eu erat. Nam mollis, urna at gravida sodales, felis
nisl hendrerit velit, non ornare sapien purus ut orci. Donec nec augue libero, eu
tincidunt ipsum. Pellentesque at lacus augue, et egestas enim. Quisque ac dui mi,
et eleifend nulla. Integer quis elit eget nisl fermentum blandit at in eros. Vestibulum
a est nisl. Maecenas eget nisl arcu, quis tincidunt risus. Aliquam erat volutpat.
Nullam lacinia venenatis libero, non imperdiet turpis vestibulum eget. Donec fermentum
ullamcorper elementum.<br>
<p class="body-content-more default-copy-hidden-less" style="float: right; width: 150px;
text-align: right; text-decoration: none;">
<a href="#" class="see_less" style="text-decoration: none;">> See Less</a></p>
<br>
</div>
[jQuery 脚本]
$(document).ready(function () {
$('.see_more').click(function () {
//divs to hide
$(".body-content.default-copy").hide();
$("p.body-content-more.default-copy-hidden-more").hide();
//divs to show
$(".body-content.default-copy-full").slideDown(500);
$("p.body-content-more.default-copy-hidden-less").show();
});
$('.see_less').click(function () {
//divs to hide
$(".body-content.default-copy-full").hide();
$("p.body-content-more.default-copy-hidden-less").hide();
//divs to show
$(".body-content.default-copy").slideDown(500);
$("p.body-content-more.default-copy-hidden-more").show();
});
});
如果有帮助,这里还有一个 jsfiddle 链接:http://jsfiddle.net/GwfJ8/
有人遇到过这个问题或者有什么建议吗?感谢您的帮助!
【问题讨论】:
-
附加信息:所以我决定启用 Safari 调试控制台(在 iphone 上),它检测到 1 个错误 [HTML:错误 - 视口参数键“target-densitydpi”无法识别和忽略]。然而,即使有错误消息,启用调试控制台后 jQuery 脚本功能也能完美运行!如果我禁用调试控制台并清除网站数据,脚本将再次停止工作。
标签: jquery iphone ios jquery-mobile mobile-safari