我正在尝试使用我已经为该应用程序的桌面版编写的jQuery代码构建一个mobile-safari / iphone web-app。我遇到的问题是,当我的手机在网络应用程序运行时进入睡眠状态时,当我将其唤醒(滑动以解除)时,JavaScript事件处理程序将不再起作用。在这种情况下意味着当我点击用于通过onclick事件执行AJAX更新的链接时,它实际上是通过在新的Safari窗口中打开页面来跟踪链接,从而打破了原生iPhone应用程序的外观。
停止工作的代码:
$(function() {
var ajaxLoad;
var ajaxClick = function(e) {
e.preventDefault();
e.stopPropagation();
$("body").load( $(this).attr("href"), ajaxLoad );
}
ajaxLoad = function() {
$(this).find("a").click( ajaxClick );
}
$("a").bind( "click", ajaxClick );
});
当代码工作时,链接的结果将在Web应用程序框架中打开,当它中断时,代码将在新的Safari窗口中打开,打破了实际应用程序的外观。
答案 0 :(得分:0)
未经测试 - 但是有助于在ajaxClick函数的末尾添加“return false”,以便链接不会激活。