1

我在我的应用程序中使用 jQuery Mobile。我有 index.html 页面,我尝试将另一个页面添加到我的应用程序中。所以在 index.html 页面上,我有一个指向 Camera.html 页面的链接:

<a href="Camera.html">Take a photo</a>   // A. version

当我单击该链接时,相机的页面会滑入(它重定向到带有滑动动画的 Camera.html 页面),但在相机页面上没有调用任何事件处理程序(加载、DOMContentLoaded 等)。我认为 jQuery Mobile 使用 ajax 重定向到其他页面,这就是不调用事件处理程序的原因。

如果我将其更改为以下内容,则会调用事件,但不会为页面重定向设置动画:

<a href="Camera.html" data-ajax="false">Take a photo</a>   // B. version

我想保留动画,我也更喜欢在相机页面上调用一些事件(我想用它来初始化)。所以我有以下问题。

  1. 如果我使用 A. 版本重定向到其他页面,您是否知道至少一个将被调用的事件?
  2. 如果我使用版本 A.,我可以以某种方式手动调用另一页上的某些事件吗?
  3. 我应该以其他方式重定向到另一个页面吗?

请给我一些代码示例好吗?

4

2 回答 2

0

请澄清当您的意思是它滑入时,您是否将 div 标签动画化到屏幕中?

如果页面重定向到 Camera.html,那么如果您将脚本包含在 Camera.html 的脚本标记中,它们只会在 Camera.html 加载时执行

另外尝试:

  • 如果要为 div 标签设置动画,请使用 $('div').load() 事件
  • 尝试添加

    $('body id="camerabody"').load(function(){ alert("Body Loaded"); })
    

其中camerabody 是Camera.html 文件中body 标签的id

  • 如果您使用 jquery.animate 引起动画,则可以在动画完成时指定回调

    $('div').animate(
             {height:'+=50'},
             1000,
             function(){ alert("animation complete"); 
    });
    
于 2012-04-26T10:56:16.670 回答
0

我想保留动画,我也更喜欢在相机页面上调用一些事件(我想用它来初始化)。所以我有以下问题。

尝试使用它来使用pageinitpageshow初始化您的页面

jQuery('[data-role="page"]').live('pageinit', function(){
  /* page initialization */
})

pageinit被触发一次 - 在 DOM 中创建页面时,每次显示页面时都会触发pageshow

于 2012-04-26T11:14:40.073 回答