我正在使用jQuery开发iPhone移动网站.我有一个隐藏的div(类.tile-content),其中包含一些内容.单击带有onclick =“ showContent(this)”的链接将调用fadeIn,如下所示:
function showContent(obj)
{
alert($(obj).html());
$(obj).next('.tile-content').fadeIn();
return false;
}
一切正常,直到我点击带有“ mailto:”链接的“给我们发电子邮件”,触发iPhone的内置电子邮件覆盖功能.然后,我单击“取消”,并返回到该站点.现在,如果我单击一个链接,我的.tile-content div将不会显示.我在iPhone上收到了适当的警报.在我按下一次之后,什么都没有起作用(我认为这意味着存在js错误?).在物理iPhone上调试非常困难.有任何想法吗?
更新:由于下面@John Boker的提示,我启用了Safari Mobile的调试控制台.没有出现错误,但是我仍然遇到同样的问题.
最佳答案
该问题发生在setInterval / setTimeout javascript函数内.在iPhone的Safari中启动邮件窗口时,似乎已暂停了用于这些功能的内部计时器.发送电子邮件(或点击取消)后,计时器将暂停,并且setTimeout / setInterval函数将不会触发.
原文链接:https://www.f2er.com/jquery/530971.html这将破坏任何依赖setTimeout / setInterval的东西,例如jquery动画和任何异步ajax调用,因为jquery使用setInterval轮询直到请求返回(我自己遇到了这个问题).
如果点击网址栏,然后单击“取消”或按手机上的“关闭”按钮,然后返回到safari,则功能将启动,一切将开始工作.并不是真正可以接受的解决方法.