2

我正在尝试使用我已经为应用程序的桌面版本编写的 jQuery 代码构建一个移动 safari/iphone 网络应用程序。我遇到的问题是,当我的手机在运行网络应用程序的情况下进入睡眠状态时,当我将其唤醒(滑动以不走运)时,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-app 框架中打开,当它中断时,代码将在新的 safari 窗口中打开,从而破坏实际应用程序的外观。

4

1 回答 1

0

未测试 - 但将“return false”添加到 ajaxClick 函数的末尾是否有助于链接不激活。

于 2011-03-19T23:57:31.837 回答