4

这是我的架构page.html

<head>
    <script... jquery
    <script... jquery.mobile
    <scripts... imagemapster, autocomplete, etc...
</head>
<body>
    <div page1..
    </div>
    <div page2..
    </div>
    <my script with functions and initializations...
</body>

在 my<script>中,有一些绑定到page1.pageshow事件。当我直接加载整个页面时,确保第一次加载所有脚本,我的脚本也正确加载并且没有任何缺陷。即使从page2back 到page1,也会触发事件。

但是,当我转到另一个页面或使用 JM 内置 ajax 函数刷新同一页面时,我的脚本没有加载,或者pageshow没有page1触发。

我尝试将脚本放在末尾page1或放在头中,但它仍然无法重新加载。我也不能将它放在任何涉及的 div 之前(所有页面中的许多标签都附加了一些事件) - 因为不仅pageshow错过了,而且ready还有pageload.

抱歉,我无法显示整个代码,但是您会以哪种方式工作并试图找出问题所在?

4

1 回答 1

0

您在此处的脚本将仅在文档加载时触发一次

<head>
    <script... jquery
    <script... jquery.mobile
    <scripts... imagemapster, autocomplete, etc...
</head>
<body>
    <div page1..
      <script with the (page1).on(pageshow event handler)>
    </div>
    <div page2..
      <script with the (page2).on(pageshow event handler)>
    </div>
    <script here fired only once at document load>
</body>

您非常错误地期望每次页面转换都会触发它,因为您使用一个页面来包含所有实际页面。通常,每个页面脚本都在 div[data-role=page] 中进行编码。确保您使用页面 id 作为每个内联 pageshow 事件处理程序的选择器。

于 2013-03-05T04:48:32.180 回答