Javascript $.mobile.navigate在jQuery mobile 1.4中不工作
当我按下“Btnew”时,单击事件会触发,但页面不会导航到newLanguagePage,而是返回到我的初始页面(index.html)。 谁能告诉我我的傻脑袋做错了什么 这是我的HTMLJavascript $.mobile.navigate在jQuery mobile 1.4中不工作,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,当我按下“Btnew”时,单击事件会触发,但页面不会导航到newLanguagePage,而是返回到我的初始页面(index.html)。 谁能告诉我我的傻脑袋做错了什么 这是我的HTML <!DOCTYPE html> <html> <body> <div id="languagesAdmin" class="mobilePage" data-role="page"> <div data-role="header">
<!DOCTYPE html>
<html>
<body>
<div id="languagesAdmin" class="mobilePage" data-role="page">
<div data-role="header">
<a href="#" data-rel="back" data-icon="back">Back</a>
<h1>NOTHNG</h1>
<a href="help.html" data-icon="info">Help</a>
</div>
<div class="banner">
<div class="logo"></div><div id="languagesTopImage" class="topBannerImage"></div>
</div>
<div class="ui-corner-all custom-corners">
<h2 class="ui-bar ui-bar-e adminHeader">Languages Menu</h2>
<div class="ui-body ui-body-e">
<div data-role="fieldcontain" class="filterDisabledCheckbox">
<label for="HideDisabledLanguages">Hide disabled Languages</label>
<input type=checkbox id="HideDisabledLanguages" name="HideDisabledLanguages" value="true" checked/>
</div>
<ul data-role="listview" id="lwLanguages" class="listViewMenu"></ul>
</div>
</div>
<div data-role="footer" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a id="btnNew" href="#" rel="external" data-role="button" data-icon="plus">New</a></li>
<li><a href="index.html" data-role="button" data-icon="delete">Delete</a></li>
<li><a href="index.html" data-role="button" data-icon="search">Search</a></li>
<li><a href="index.html" data-role="button" data-icon="refresh">Refresh</a></li>
</ul>
</div>
</div>
</div>
<div id="newLanguagePage" class="mobilePage" data-role="page">
<div data-role="header">
<a href="#" data-rel="back" data-icon="back">Back</a>
<h1>Inter Pay Less</h1>
<a href="help.html" data-icon="info">Help</a>
</div>
<div class="banner">
<div class="logo"></div><div class="topBannerImage"></div>
</div>
<div class="ui-corner-all custom-corners">
<h2 class="ui-bar ui-bar-e adminHeader">Languages Menu</h2>
<div class="ui-body ui-body-e">
New Language
</div>
</div>
<div data-role="footer" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="index.html" data-role="button" data-icon="delete">Delete</a></li>
<li><a href="index.html" data-role="button" data-icon="search">Search</a></li>
<li><a href="index.html" data-role="button" data-icon="refresh">Refresh</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>
没什么
语言菜单
隐藏禁用的语言
内部薪酬减少
语言菜单
新语言
下面是JavaScript
var strBaseWSURL = "http://www.WHATEVER.com/";
var objLanguages = new Array();
var lngLanguagesCursor = -1;
//Language Object
function _Language(data) {
this.Id = data.Id;
this.Code = data.Code;
this.Name = data.Name;
}
//LanguageAdmin_pageinit
$(document).on('pageinit', '#languagesAdmin', function () {
try {
execJQueryAjaxAndGetJSON([], strBaseWSURL + "IPLObjectsWS.asmx/GetAllLanguages", loadLanguages);
}
catch (e) {//Report the error
alert("Error fetching the languages.")
return false;
}
//New_Click
$(document).on("click", "#btnNew", function () {
$.mobile.navigate("#newLanguagePage", { transition: "slide" });
});
//Languages_onclick
$(document).on("click", "#lwLanguages li a", function () {
lngLanguagesCursor = $(this).closest("li").index();
});
});
//LanguageDetails_pageinit
$(document).on('pageinit', '#languageDetails', function () {
var objCurrentObject = objLanguages[lngLanguagesCursor];
$("#languageid").val(objCurrentObject.Id);
$("#languagecode").val(objCurrentObject.Code);
$("#languagename").val(objCurrentObject.Name);
//Save_onclick
$(document).on("click", "#btnSaveCountry", function () {
var objCurrentObject = objLanguages[lngLanguagesCursor];
var objUpdatedLanguage = new _Language();
objUpdatedLanguage.id = objCurrentObject.id;
objUpdatedLanguage.Code = $("#languagecode").val();
objUpdatedLanguage.Name = $("#languagename").val();
execJQueryAjaxAndGetJSON(objUpdatedLanguage, strBaseWSURL + "IPLObjectsWS.asmx/SaveLanguage", savedLanguage);
});
});
//__________________________________________________________________________Application Functions
//__________________________________________________________Calback functions
//Goes thru the languages and adds them to the lisview
function loadLanguages(result) {
$.each(result.d, function () {
$("#lwLanguages").append($('<li><a href="language_details.html">' + this.Name + '</a></li>'));
objLanguages[objLanguages.length] = new _Language(this);
});
$("#lwLanguages").listview("refresh");
}
function savedLanguage(result) {
alert("The object was saved successfully!");
}
//__________________________________________________________Main functions
//Executes a Webservice Method and send the returned JSON to a callback function
function execJQueryAjaxAndGetJSON(params, strURL, callBackFunc) {
//GetCountries
$.ajax({
type: "POST",
url: strURL,
data: params,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: callBackFunc,
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus + ": " + XMLHttpRequest.responseText + "\n" + errorThrown);
}
});
}
var strBaseWSURL=”http://www.WHATEVER.com/";
var objLanguages=新数组();
变量lngLanguagesCursor=-1;
//语言对象
函数_语言(数据){
this.Id=data.Id;
this.Code=data.Code;
this.Name=data.Name;
}
//LanguageAdmin_pageinit
$(document).on('pageinit','#languagesAdmin',函数(){
试一试{
execJQueryAjaxAndGetJSON([],strBaseWSURL+“IPLObjectsWS.asmx/GetAllLanguages”,loadLanguages);
}
catch(e){//报告错误
警报(“获取语言时出错。”)
返回false;
}
//新点击
$(文档)。在(“单击”上,“新建”,函数(){
$.mobile.navigate(“#newLanguagePage”,{transition:“slide”});
});
//语言点击
$(文档)。在(“单击”上,“#a”,函数(){
lngLanguagesCursor=$(this).closest(“li”).index();
});
});
//语言详细信息\u页面初始化
$(document).on('pageinit','#languageDetails',函数(){
var objCurrentObject=objLanguages[lngLanguagesCursor];
$(“#languageid”).val(objCurrentObject.Id);
$(“#语言代码”).val(objCurrentObject.Code);
$(“#languagename”).val(objCurrentObject.Name);
//保存单击
$(文档)。在(“单击”上,“#btnSaveCountry”,函数(){
var objCurrentObject=objLanguages[lngLanguagesCursor];
var objUpdatedLanguage=new_Language();
objUpdatedLanguage.id=objCurrentObject.id;
objUpdatedLanguage.Code=$(“#languagecode”).val();
objUpdatedLanguage.Name=$(“#languagename”).val();
execJQueryAjaxAndGetJSON(objUpdatedLanguage,strBaseWSURL+“IPLObjectsWS.asmx/SaveLanguage”,savedLanguage);
});
});
//__________________________________________________________________________应用功能
//__________________________________________________________Calback函数
//遍历这些语言并将它们添加到lisview
函数加载语言(结果){
$.each(result.d,function(){
$(“#lw语言”)。追加($('');
objLanguages[objLanguages.length]=新语言(this);
});
$(“#lwLanguages”).listview(“刷新”);
}
函数保存语言(结果){
警报(“对象已成功保存!”);
}
//__________________________________________________________主要功能
//执行Webservice方法并将返回的JSON发送到回调函数
函数execJQueryAjaxAndGetJSON(参数、strURL、callBackFunc){
//GetCountries
$.ajax({
类型:“POST”,
网址:strURL,
数据:params,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
async:false,
成功:callBackFunc,
错误:函数(XMLHttpRequest、textStatus、errorshown){
警报(textStatus+“:”+XMLHttpRequest.responseText+“\n”+错误抛出);
}
});
}
可能重复使用$.mobile.pageContainer.pageContainer(“更改”、“页面”、“选项”)
@Omar:是的,我也试过,但也不起作用。同样的结果。。。没什么…:(我做了一个简单的“2页多页”它起作用了。但与其他代码一起,它不起作用。当我检查地址栏时,它指向根根/newLanguagePage,它不是正确的地址…它应该是根/languages.html#newLanguagePage…我是jQuery Mobile的新手…但知道退出了很多JS。我真的很想为这个新项目实现它。Thanks需要一个快速回复Omar先生。那么你使用的是单页模型和多页模型,对吗?如果是,你不能同时使用两种模型,它是单页模型还是多页模型。我必须为整个项目选择模型吗?我不能先说,使用单页模型,然后在某些页面中使用多页模型吗?