我非常新的移動設備的網絡應用程序。我正在評估幾個我將用於即將開展的項目的圖書館,並選擇了jQuery Mobile,Sammy和Require JS。我試圖將它們整合到示例應用程序中以便熟悉,並且我完全被拋棄了。使用jQuery Mobile應用程序需要JS和薩米
我試圖做的基本上都是使用加載和requirejs將用戶重定向到一個模板模塊基本的東西。令我驚訝的是,我看到模板正在加載到DOM,但jQuery樣式從未應用,我不知道是什麼原因。我試圖將模板直接附加到我的起始頁的index.html正文。
我試圖將其追加在格但jQuery Mobile的包裹格成一個頁面,嵌套頁面是不是在jQuery Mobile的使用。任何幫助將不勝感激。我也粘貼一些代碼,以提供高層次的想法,我正在努力實現。
的index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>New Project</title>
<link rel="stylesheet" href="styles/jquery.mobile-1.3.1.css"/>
<link rel="stylesheet" href="styles/style.css" />
<script type="text/javascript" src="js/require/require.js" data-main="js/common"></script>
</head>
<body>
</body>
</html>
AMD模塊的通用JS
require.config({
baseUrl: "js/",
paths: {
jquery: 'lib/jquery/jquery-1.10.1',
'jquery.mobile': 'lib/jquery/jquery.mobile-1.3.1',
'jquery.mobile.config': 'lib/jquery/jquery.mobile.config',
underscore: "lib/underscore/underscore",
ko: "lib/knockout/knockout.min",
postal: "lib/postal/postal",
amplify: "lib/amplify/amplify",
text: "require/text",
sammy: "lib/sammy/sammy",
'sammy.template':"lib/sammy/plugin/sammy.template",
router : "Router"
},
priority: ['jquery', 'jquery.mobile','jquery.mobile.config','sammy','sammy.template'],
shim: {
ko: {
exports: "ko"
},
underscore: {
exports: "_"
},
amplify: {
exports: "amplify"
},
'jquery.mobile': ['jquery','jquery.mobile.config'],
'sammy': { deps: ['jquery','jquery.mobile'], exports: 'Sammy' } ,
'sammy.template': { deps: ['sammy']},
'router': { deps: ['sammy.template']}
},
waitSeconds: 60
});
require(["jquery",'router',"jquery.mobile"],function($,Router,){
console.log('1');
//GlobalContext.initialize();
}) ;
我router.js
define(['jquery','sammy','sammy.template'],function($,Sammy){
return Sammy(function() {
this.use('Template');
this.element_selector = 'body';
this.get('#/', function(context) {
context.app.swap('');
alert(context.$element());
context.render('view/hello.template')
.appendTo(context.$element());
})
.then(function(){
$('#main').trigger("create")
});
this.get('#/item', function(context) {
context.app.swap('');
context.render('view/page2.template')
.appendTo(context.$element());
});
}).run('#/');
});
我的,我想保存爲模板負荷hello.template
<script type="text/javascript">
require(["jquery","jquery.mobile"],function($){
console.log('2');
$('#myText').val('AAAA');
});
</script>
<div data-role="page">
<div data-role="header" data-theme="b" data-position="fixed">
<h1>Main Menu</h1>
</div>
<div data-role="content">
<input type = "text"
id = "myText"
value = "text here" />
<ul data-role="listview" data-inset="true" data-filter="true">
<li><a href="#">Acura</a></li>
<li><a href="#">Audi</a></li>
<li><a href="#">BMW</a></li>
<li><a href="#">Cadillac</a></li>
<li><a href="#">Ferrari</a></li>
</ul>
</div>
<div data-role="footer">
<h4>Page Footer</h4>
</div>
</div>
預先感謝任何輸入
Tolis感謝您的答覆,我試過你的解決方案,但不幸的是它仍然無法正常工作。 謝謝 – user2514435
當您觸發頁面創建時,'container'元素必須存在。你可以添加一個'console.log($('#container')。length);'並檢查它是否存在(它不應該是0)? –
我已經更新了我的答案。你可以驗證jQuery Mobile js在router.js之前加載嗎? –