我需要帮助一个在用户空闲时触发的模态.它运行良好,直到我在运行NVDA的Firefox上进行测试.使用箭头键时以及在移动设备上滑动时会出现焦点问题.当模态出现并且用户使用箭头或滑动时,如果我等待点击它,焦点将在几秒后从"是"按钮反弹到标题.我已经装了工作示例:https://jsfiddle.net/ncanqaam/
我将空闲时间段更改为一分钟,并删除了调用服务器以扩展用户会话的部分.
var state ="L";
var timeoutPeriod = 540000;
var oneMinute = 60000;
var sevenMinutes = 60000;
var lastActivity = new Date();
function getIdleTime() {
return new Date().getTime() - lastActivity.getTime();
}
//Add Movement Detection
function addMovementListener() {
$(document).on('mousemove', onMovementHandler);
$(document).on('keypress', onMovementHandler);
$(document).on('touchstart touchend', onMovementHandler);
}
//Remove Movement Detection
function removeMovementListener() {
$(document).off('mousemove', onMovementHandler);
$(document).off('keypress', onMovementHandler);
$(document).off('touchstart touchend', onMovementHandler);
}
//Create Movement Handler
function onMovementHandler(ev) {
lastActivity = new Date();
console.log("Something moved, idle time = " + lastActivity.getTime());
}
function …Run Code Online (Sandbox Code Playgroud) 我有zip具有签名的函数:
function zip<T, U, V>(ts: T[], us: U[], zipper: (t: T, u: U) => V): V[]
Run Code Online (Sandbox Code Playgroud)
我正在尝试为zipper参数分配一个默认值(t, u) => [t, u]:
function zip<T, U, V>(
ts: T[],
us: U[],
zipper: (t: T, u: U) => V = (t, u) => (<[T, U]>[t, u])
)
Run Code Online (Sandbox Code Playgroud)
这会产生(有点预期)关于(T, U) => [T, U]不可分配给(T, U) => V.
最后,我用一组有点难看的重载解决了这个问题:
export function zip<T, U>(ts: T[], us: U[]): [T, U][]
export function zip<T, U, V>(
ts: T[],
us: …Run Code Online (Sandbox Code Playgroud)