标签:html5 cordova jquery-mobile javascript jquery
我需要更改我的phonegap项目的后退按钮功能,而我已经成功完成了该操作,没有任何问题.现在唯一的问题是,我需要根据用户是否选择了某个字段来进一步更改功能.
基本上,如果用户单击ID为“ date-selector1”的字段,则需要完全禁用后退按钮.
我试图使用document.activeElement,但是它只返回元素的类型(在这种情况下为输入),但是我仍然希望功能在常规输入中时起作用,而不是在常规输入中时起作用.一个特定的ID.
编辑
我尝试了以下所有建议,但最终获得了以下代码,但仍然没有成功.
function pluginDeviceReady() {
document.addEventListener("backbutton", onBackKeyDown, false);
}
function onBackKeyDown() {
var sElement = document.activeElement;
var isBadElement = false;
var eList = ['procedure-date', 'immunization-date', 'lab-test-done', 'condition-onset', 'condition-resolution', 'medication-start-date', 'medication-stop-date', 'reaction-date'];
console.log("[[ACTIVE ELEMENT: --> " + document.activeElement + "]]");
for (var i = 0;i < eList.length - 1;i++) {
if (sElement == $(eList[i])[0]) {
isBadElement = true;
}
}
if (isBadElement) {
console.log('Back button not allowed here');
} else if ($.mobile.activePage.is('#main') || $.mobile.activePage.is('#family') || $.mobile.activePage.is('#login')) {
navigator.app.exitApp();
} else {
navigator.app.backHistory();
}
}
解决方法:
如果您正在监听后退按钮,则可以添加以下if语句:
if (document.activeElement == $("#date-selector1")[0]) {
/*disable button here, return false etc...*/
}
甚至更好(感谢乔纳森·桑普森)
if (document.activeElement.id === "date-selector1") {
/*disable button here, return false etc...*/
}
标签:html5,cordova,jquery-mobile,javascript,jquery 来源: https://codeday.me/bug/20191201/2079243.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。