如何在使用jQuery Mobile转换页面后执行JavaScript

当页面转换到另一个页面(并使用location.hash东西)时,第二页面不会加载任何JavaScript。 如何在加载页面时执行JavaScript(如果这个“来自”来自其父级的转换)?

我有page1.html,其中包含指向page2.html的链接。 此page2.html加载了一个转换(默认情况下为幻灯片效果)。

在page2.html中没有执行JavaScript。 我试着用一个简单的方法

  alert("x");  

但不起作用。 我尝试了很多document.readybindliveoncreatepagecreate等等。

您可以使用回调函数。 动画后调用一个函数。

在jQuery中:

 $('#yourElement').animate({ opacity: 0.25, }, 5000, function() { // Animation complete. add your callback logic here }); 

如果使用Webkit转换:

 $('#yourElement').addEventListener( 'webkitTransitionEnd', function( event ) { // Animation complete. add your callback logic here }, false ); 

如果使用jQuery Mobile,您可以使用’pageshow’和’pagehide’事件监听器:

http://jquerymobile.com/test/docs/api/events.html

 $('div').live('pageshow',function(event, ui){ alert('This page was just hidden: '+ ui.prevPage); }); $('div').live('pagehide',function(event, ui){ alert('This page was just shown: '+ ui.nextPage); }); 

基本上在Jquerymobile中,当你进行页面转换时,只有里面的内容

  
...

有效地改变了你所有的脚本和你所包含的一切

   

标签没有加载。

因此,要解决此问题,您需要在页面中包含脚本,如下所示

  
...

谢谢,Dinesh Parne

此问题似乎也在这里突出显示: jquerymobile – 包括.js和.html

我已经成功通过在第一页上找到/包含所有JavaScript,并且对于每个链接页面,我将代码包装在一个块中,如下所示:

 $('#page2').live('pageshow',function(){ //page twos JS }); $('#page3').live('pageshow',function(){ //page threes JS }); 

当然,每个文档必须包含具有相应ID的常用容器:

 
...

有两种方法可以执行此操作1.)在第一页中添加所有脚本文件2.)每次调用新页面时使用link rel =“external”(例如Next Page )执行此操作时,下一页将执行其标题部分

但在大多数情况下,前1是最好的

rel="external"的问题在于它意味着任何JQuery Mobile页面转换都不起作用….

我有类似的问题,如果你使用标签进行转换尝试添加target="_self"属性。 这对我有用。