2012-06-19 113 views
3

我有这个简单的HTML(我主持我自己的文件和它的作品)jQuery Mobile的页面注入

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<link rel="stylesheet" href="JQM/jquery.mobile-1.0.1.min.css" /> 
<script src="JQM/jquery.js"></script> 
<script src="JQM/jquery.mobile-1.0.1.min.js"></script> 
<script src="pages.js"></script> 
</head> 
<body onload="main_page();"> 

<div data-role="page"> 
<div data-role="header"> 
    <h1>My Title</h1> 
</div> 
<div id="main_div" data-role="content"> 
</div> 
</div> 

</body> 
</html> 

在onload事件我要调用这个函数,并添加JS到ID生成的内容=” main_div“或data-role =”content“

function main_page(){//trips menu 

var this_page =' '; 
var this_body=''; 

this_body += '<ul data-role="listview" data-inset="true" data-filter="true">'; 
this_body += "<li><a href=\"#\">Check my Inbox</a></li>"; 
this_body += "<li><a href=\"#\">Tutors/ Post Tutors</a></li>"; 
this_body += "<li><a href=\"#\">Books/Post Books</a></li>"; 
this_body += "<li><a href=\"#\">Invite friends</a></li>"; 
this_body += "<li><a href=\"#\">Forum</a></li>"; 
this_body += '</ul>'; 
this_page += this_body; 

var $page = $(pageSelector), 
     $content = $page.children(":jqmData(role=content)"); 
    $page+=this_page; 

$.mobile.changePage(#,$page); 
} 

这只是我必须做的一个简单例子。但无论怎样我不工作....

+0

'pageSelector'从哪里来? – Cranio

回答

1

包住你的jQuery这样

$(document).bind('pageinit',function(){ 
    $("body").on("load", function(){ 
    // your jquery 
    // 
    // 
    } 
    }); 
+0

请勿在JQM中使用加载事件,因为它会混淆:http://jquerymobile.com/demos/1.1.0/docs/api/events.html – TecHunter

2

您不能加载一个页面一样,但如果你的目标是加载该菜单可以通过以下代码实现:

$(document).on('pageinit',function(){ 
    // this is the mobile onload event 
var this_page =' '; 
var this_body=''; 

this_body += '<ul id="menu" data-role="listview" data-inset="true" data-filter="true">'; 
this_body += "<li><a href=\"#\">Check my Inbox</a></li>"; 
this_body += "<li><a href=\"#\">Tutors/ Post Tutors</a></li>"; 
this_body += "<li><a href=\"#\">Books/Post Books</a></li>"; 
this_body += "<li><a href=\"#\">Invite friends</a></li>"; 
this_body += "<li><a href=\"#\">Forum</a></li>"; 
this_body += '</ul>'; 
this_page += this_body; 

$('#main_div').append($(this_page)); 
//EDIT : you also need to trigger the listview creation after inserting, almost forgot this trick :P 
$('#menu').listview(); 

}); 

您可以使用该方法从您的身体中删除onload函数。那是你想要做的吗?

1

对于动态追加(页面注入)使用jQuery,append不起作用。在这种情况下,这段代码适用于我。

function main_page(){ 

var this_page =' '; 
var this_body=''; 

this_body += '<ul data-role="listview" data-inset="true" data-filter="true">'; 
this_body += "<li><a href=\"#\">Check my Inbox</a></li>"; 
this_body += "<li><a href=\"#\">Tutors/ Post Tutors</a></li>"; 
this_body += "<li><a href=\"#\">Books/Post Books</a></li>"; 
this_body += "<li><a href=\"#\">Invite friends</a></li>"; 
this_body += "<li><a href=\"#\">Forum</a></li>"; 
this_body += '</ul>'; 
this_page += this_body; 


    $("#atmlist").append(this_page);/*data to append*/ 
    $.mobile.changePage($('#index')); /*page navigation the particular where data shown*/ 
    $("#index").trigger("pagecreate"); /*This is like a page refresh in jquery*/ 
}