0

我刚刚开始使用 Javascript、jQuery 和 jQuery Mobile。我正在尝试在线阅读教程,但我正在关注 mobileinit 事件处理程序。这是代码:

<script type="text/javascript">
        $(document).bind("mobileinit", function() {
        Notes.testHelper.createDumyNotes();
        Notes.controller.init();
    });
</script>

如果我在 Notes.testHelper.createDummyNotes() 之前和之后发出警报;警报被调用。但是,如果我将警报放在 Notes.controller.init() 之后,则不会调用警报。我想这意味着代码在该函数中停止。但是,如果我在函数外部的结束脚本标记之前放置一个警报,则会调用该警报——这让我感到困惑。一个方法如何挂起并且不允许函数的其余部分完成但仍然让脚本完成?

有趣的是,我一开始忘记在这个 .bind 函数周围放置脚本标签,并且 html 的样式是正确的。但是,一旦我将标签放在这个函数周围,html 就会出现但没有样式。

有什么建议么?正如我所说,我是 javascript 的新手,所以这可能是对语言执行方式的根本误解。

谢谢你的帮助!

4

1 回答 1

0

的内容$(document).bind("mobileinit", function() { ... }将在mobileinit事件触发时调用,这将在script读取标签之间的代码之后。这就是您在执行结束标记alert之前放置的原因。script

如果你alert(1);在结束标签之前,alert(2);function() {andalert(3)之后createDumyNotes(),你可能会得到1and2但不是3

我认为您走在正确的道路上,因为createDumyNotes()函数中发生了错误。我建议您进入该函数try { ... } catch(e) { ... }并确定错误发生的位置(假设Notes并且Notes.testHelper是有效对象,并且Notes.testHelper.createDumyNotes()是现有函数。

编辑

我刚刚注意到您的功能是createDumyNotes()而不是createDummyNotes(). 这仅仅是拼写错误吗?

于 2012-05-28T01:50:22.623 回答