我在应用程序中使用 jQuery Mobile。我有和索引.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
我想保留动画,我也希望在相机页面上调用一些事件(我想使用它进行初始化)。所以我有以下问题。
- 您是否知道至少一个事件,如果我使用 A. 版本重定向到其他页面,则会调用该事件?
- 如果我使用版本 A.,我可以以某种方式手动调用另一个页面上的某个事件吗?
- 我应该以其他方式重定向到另一个页面吗?
你能给我一些代码示例吗?
我想保留动画,我也希望在相机页面上>调用某个事件(我想使用它进行初始化)。所以我有以下问题。
尝试使用它来使用 pageinit 或 pageshow 初始化您的页面
jQuery('[data-role="page"]').live('pageinit', function(){
/* page initialization */
})
pageinit 被触发一次 - 当在 DOM 中创建页面时,每次显示页面时都会触发 pageshow
请澄清一下,当你的意思是它向内滑动时,你是否在屏幕上对div标签进行了动画处理?
如果页面重定向到 Camera.html,那么如果您将脚本包含在 Camera.html 的脚本标记中,则它们只会在 Camera.html 加载时执行
另外尝试:
- 如果要对div 标签进行动画处理,请使用 $('div').load() 事件
-
尝试添加
$('body id="camerabody"').load(function(){ alert("Body Loaded"); })
其中相机主体是相机.html文件中正文标签的 ID
-
如果使用 jquery.animate 生成动画,则可以在动画完成时指定回调
$('div').animate( {height:'+=50'}, 1000, function(){ alert("animation complete"); });