如何在使用jQuery Mobile转换页面后执行JavaScript
当页面转换到另一个页面(并使用location.hash
东西)时,第二页面不会加载任何JavaScript。 如何在加载页面时执行JavaScript(如果这个“来自”来自其父级的转换)?
我有page1.html,其中包含指向page2.html的链接。 此page2.html加载了一个转换(默认情况下为幻灯片效果)。
在page2.html中没有执行JavaScript。 我试着用一个简单的方法
alert("x");
但不起作用。 我尝试了很多document.ready
, bind
, live
, oncreate
, pagecreate
等等。
您可以使用回调函数。 动画后调用一个函数。
在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"
属性。 这对我有用。