2013-10-21 132 views
0

我找不到爲什麼我的jquery移動代碼在通過jquery移動鏈接/按鈕重新加載頁面時不起作用。JQuery移動過渡在加載頁面

示例代碼:

<!DOCTYPE html> 
<html> 
<head> 
    <title>My Page</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.css" /> 
    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> 
    <script src="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.js"></script> 

</head> 
<body> 

<div data-role="page"> 

    <div data-role="header"> 
     <h1>My Title</h1> 
    </div><!-- /header --> 

    <div id="mydiv">wtf</div> 

    <div data-role="content"> 
     <p>Hello world</p> 
    </div><!-- /content --> 

    <a href='page.html?reload=1' data-role="button" data-theme="a">Again</a> 

</div><!-- /page --> 


<script type="text/javascript"> 

function setmydiv() 
{ 
    console.log('start'); 
    $("#mydiv").html('init'); 
} 

$(document).on('pageinit', function(){ 
    console.log('init'); 
    setmydiv(); 

}); 
</script> 

</body> 
</html> 

的頁面加載(第一次)和在mydiv區域顯示 「初始化」。 當我按下「再一次」的mydiv文本仍然是「跆拳道」

控制檯日誌(不與「初始化」代替):

[00:49:16,081] GET http://www.vetgirig.nu/page.html [HTTP/1.1 200 OK 52ms] 
[00:49:16,686] "init" 
[00:49:16,686] "start" 
-- 
[00:49:34,498] GET http://www.vetgirig.nu/page.html?reload=1 [HTTP/1.1 200 OK 46ms] 
[00:49:34,387] "init" 
[00:49:34,388] "start" 

我曾嘗試使用其他事件比pageinit,但沒有成功...

如果我更換:

<a href='page.html?reload=1' data-role="button" data-theme="a">Again</a> 

有:

<input type='submit' data-role="button" value='Again' onClick="location.href = 'page.html?reload=1'"/> 

然後一切正常(但轉換 - 按按鈕動畫 - 丟失)。
我錯過了什麼......?

回答

0

jQuery mobile默認使用Ajax加載頁面。你有pageinit有代替document.ready這是正確的,但你可以嘗試:

原因禁用你的鏈接Ajax的負載您提交按鈕正在做你期望的是,JavaScript是從字面上重新加載頁面和刷新DOM,Ajax頁面加載不會做。

+0

令人驚歎的。非常感謝。 – user2904980

+0

只是一個想法:我真正想要的是能夠在ajax完成後操作DOM。這真的不可能,對我來說聽起來像是一件基本的事情?! – user2904980