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

Fla*_*Moe 8 jquery jquery-mobile

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

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

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

<script type="text/javascript">
alert("x");
</script>
Run Code Online (Sandbox Code Playgroud)

但不起作用.我尝试了很多document.ready,bind,live,oncreate,pagecreate,等.

DA.*_*DA. 9

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

在jQuery中:

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

如果使用Webkit转换:

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

如果使用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);
});
Run Code Online (Sandbox Code Playgroud)


Din*_*rne 9

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

    <div data-role="page">
    ...
    </div> 
Run Code Online (Sandbox Code Playgroud)

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

    <head></head> 
Run Code Online (Sandbox Code Playgroud)

标签没有加载.

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

    <div data-role="page">
    ...
    <script type="text/javascript" src="yourScript.js"></script>
    </div>
Run Code Online (Sandbox Code Playgroud)

谢谢,Dinesh Parne