【发布时间】:2012-11-27 20:19:52
【问题描述】:
不确定这里发生了什么...但假设用户输入他们的 PIN 并点击 GO 按钮,当 PIN 无效时执行以下代码:
navigator.notification.alert(
"Invalid PIN entry. Please try again.",
alertDismissed,
"ETA Security",
""
);
function alertDismissed(){
//does nothing
}
这是第一次工作(只要我不离开并返回就反复)......但是当我在页面之间导航时(jquery mobile:一切都在一个页面上[index.html])并返回进入另一个 PIN...我再次调用 navigator.notification.alert,但这一次,它显示了 4 次警报(5、6,每次我返回页面时,它都会添加另一个警报)!
有什么想法吗?
**
编辑 - 添加完整示例
** 用户单击使用 ajax 的链接进入数据库,该数据库返回包含列表的 json 对象。
数据库调用是一个ajax调用:
$.ajax({
cache: false,
type: "POST",
url: "my url telling the database to return the FIF list JSON object",
data: sFrmData,
success: function(ajaxResponse){
eval(ajaxResponse);
wait(0);
}
});
ajax 调用返回:
getFifs({"rows":[
{
"ID":"12345",
"CONF":"1",
"LINK":"http://www.cnn.com",
"DIS":"My FIF",
"CONFIRM_CODE":"flightxyz",
"DESCRIP":"Fif showing blah blah blah"
}
]}
);
在getFifs函数中,下方的CONFIRM BUTTON区域是调用警报的地方(etajs.showAlert(\'Confirm Error\'...)
//Build the list of FIFs
function getFifs(oJson){
//change JQM page to fifs
$.mobile.changePage("#fifs", "none", false, true);
var strLi=" ";
var arrayCnt=0;
var numTotal=0;
$("#listFif").empty();
strLi+='<ul data-role="listview" data-inset="true" data-theme="d">';
$.each(oJson.rows,function(){
numTotal++;
var disname=this.DIS;
var fifid=this.ID;
var fiflink=this.LINK;
var descrip=this.DESCRIP;
var conf=this.CONF;
strLi+='<li><font size=5>' + disname + '</font><br>';
//******************************************
//CONFIRM BUTTON
strLi+='<div data-mini="true" data-role="controlgroup" data-type="horizontal">';
strLi+='<a href="#fifCode" onclick="if(fifViewArray['+arrayCnt+']==1){etajs.setIdHolder('+fifid+');"}else{etajs.showAlert(\'Confirm Error\',\'You must first View the FIF before confirming it!\',etajs.alertDismissed);";} ';
strLi+='data-rel="dialog" data-theme="c" data-role="button">Confirm</a>';
strLi+='</div>';
strLi+='<div style="white-space:normal;">Description:<font color=gray> ' + descrip + '</font></div>';
strLi+='</li>';
}); //end loop
strLi+='</ul><Br><Br>';
$("#listFif").append(strLi).trigger("create");
updateScrolling("wrapperFifs");
}
function showAlert(strTitle,strMessage,strCallback){
navigator.notification.alert(
strMessage, // message
strCallback, // callback to invoke with index of button pressed
strTitle, // title
'' // buttonLabels
);
}
</SCRIPT>
<!--FIFs Page-->
<div id="fifs" data-role="page">
<div id="wrapperFifs" class="iscroll_wrapper" style="padding-top:0px;">
<div class="scroller" id="listFif"></div>
</div>
</div>
【问题讨论】:
标签: cordova jquery-mobile alert