我正在使用jQuery Mobile在IBM worklight中开发混合应用程序。
我的应用程序文件夹结构如下:
从carbikepooling.html,我将页面更改为置于pages文件夹中的ownerProfile.html: validationForm.js(与carbikepooling.html相关)
function redirectToProfile(profileId, profileType){
if(profileId == null || profileId == ""){
$("#failMessage").fadeIn();
}
else if(profileType == "Owner"){
var dataurl = '?profileID='+profileId;
$("#failMessage").fadeOut(200, function(){$("#loginSuccess").fadeIn(function(){$.mobile.changePage('pages/ownerProfile.html'+dataurl, {transition: "slide"});});});
}
else{
var dataurl = '?profileID='+profileId;
$("#failMessage").fadeOut(200, function(){$("#loginSuccess").fadeIn(function(){$.mobile.changePage('pages/passengerProfile.html'+dataurl, {transition: "slide"});});});
}
}
这很好用。
现在,我在ownerProfile.html文件中,从此文件中,当我将页面更改为createPool.html文件时,将其放置在同一页面文件夹中:
ownerProfile.js(与ownerProfile.html文件关联)
$(document).undelegate('#crtPool', 'click').delegate('#crtPool', 'click', function() {
if(update1 == 1 && update2 == 1){
var dataurl1 = '?profileID='+profileId+'&name='+userName;
$.mobile.changePage('pages/createPool.html'+dataurl1, {transition: "slide"});
}
else{
alert("Oops! You have not updated all of your information. To create pool, first update your info (click the settings icon on the right top)");
}
});
问题是这次没有加载createPool.html文件,因为为定位文件而创建的路径错误如下:
GET http://192.168.42.239:10080/CarBikePooling/apps/services/preview/CarBikePooling/common/0/default/pages/pages/createPool.html
正如您所看到的,URL中的pages
被显示两次,我不明白为什么。
答案 0 :(得分:0)
您没有在问题中指定app结构中的pages文件夹。
假设它是这样的:
apps\
--- yourApp\
------ android\
------ iphone\
------ common\
--------- css\
--------- js\
--------- my.html
------ pages\
--------- my1.html
--------- my2.html
--------- my3.html
我认为这是因为一旦你changePage
来自主文件HTML apps\yourApp\common
,你就在apps\yourApp\pages
...
因此,当您想要从pages\
中的文件移至pages\
中的另一个文件时,由于您已经在pages\
,因此只需调用HTML文件即可。含义,
改变这个:
$.mobile.changePage('pages/createPool.html'+dataurl1, {transition: "slide"});
对此:
$.mobile.changePage('createPool.html'+dataurl1, {transition: "slide"});
或者,升级并返回,意思是:../pages/createPool.html
。