我有以下代码:
function logout_now()
//Logout of the app after a long press onKey(Longer then 5 sec) Not working correctly
{
var startTime;
var endTime;
var TimeDiff;
document.getElementById('Exit_btn').addEventListener('touchstart',function(event)
{startTime = new Date().getTime();
},false);
document.getElementById('Exit_btn').addEventListener('touchend',function(event){
endTime = new Date().getTime();
TimeDiff = endTime-startTime;
if( endTime-startTime > 5000 ) //logout after more then 5 Second = 5000 mSec
{
logout();
}
},true);
}
当用户在等待5秒(长按)后按下Exit_btn时,它会启动以下功能:
功能注销() {
var password = prompt("Please enter the exit password");
if (password == "123")
{
alert("Goodbye");
navigator.app.exitApp();
}
else
{
alert("Wrong Password!");
console.log("index.html");
}
}
麻烦的是它没有顺利工作,这意味着如果我输入错误的密码,提示框会一直弹出,或者如果我最终正确地退出应用程序,当我再次启动它时会崩溃。
有人能在这看到问题吗?为什么会这样?
任何帮助表示感谢。
感谢。
答案 0 :(得分:1)
您可以使用jQuery Mobile taphold事件,如下所示......这可能对您有帮助......
HTML:
<div id="logout-btn">Logout</div>
jQuery Mobile:
$(function() {
$( "#logout-btn" ).on('taphold', tapholdCallBack);
// Callback function
function tapholdCallBack(ev) {
logout();
.....
}
});
或
$(document).delegate('div[data-role*="page"]', 'pageshow', function () {
$(document).delegate('#logout-btn', 'taphold', function (ev) {
logout();
});
});
长按退出按钮750毫秒,它将调用logout()。
默认情况下,点按持续时间为750毫秒,如果您想通过指定值to $.event.special.tap.tapholdThreshold
来更改点按的时间。如下所示...
$(document).bind("mobileinit", function () {
$.event.special.tap.tapholdThreshold = 5000,
});