1

我正在尝试为 Blackberry Playbook 开发一个应用程序(是的,我知道,它已经死了......请耐心等待)。

我正在使用一个简单的 WebWorks 应用程序,当我加载页面时,我的 jQuery ready() 函数似乎被调用了两次。

<!doctype html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                    alert("ready");
            });
        </script>
    </head>
    <body>
        Hello World.
    </body>
</html>

知道为什么会发生这种情况吗?我正在 Playbook 的 Ripple 模拟器中进行测试。

4

2 回答 2

1

我很确定当前版本的 Ripple 无论如何在 Windows 上都会加载页面两次。它与 jQuery(或我也在使用的 CoffeScript)无关。

即使我不喜欢它,我拥有的解决方案是:

// earlier
var runner = function() {
  alert('ready');
};

// later
$(function() {
  if(window.tinyHippos) {
    setTimeout(runner, 3000);
  } else {
    runner();
  }
});

相当hacky,但它似乎工作。希望在 Ripple 的下一次迭代中,双重负载将消失。

于 2012-02-27T20:59:44.630 回答
0

在您的测试工作中,您是否尝试过替代使用 .ready() 的快捷方式来查看它们是否通过两个警报执行相同的结果?

$(function() {
    alert('ready');
});

另外,也许尝试使用以前版本的 jQuery 来测试它是否与最新版本的 jQuery 中的问题有关。

所以,也许尝试 1.6.1 而不是 1.7.1。

我希望我能提供更多帮助,但不幸的是,我个人并不拥有剧本。

于 2012-01-07T23:24:26.150 回答