我发现代码阻止用户在加载我的图库时使用键滚动,例如pgup,pgdown,tab,space等,但在关闭图库后我需要启用这些键。你能帮帮我吗?
谢谢
这是我的代码:
function disableK() {
var ar = new Array(9, 32, 33, 34, 35, 36, 37, 38, 39, 40);
$(document).keydown(function (e) {
var key = e.which;
if ($.inArray(key, ar) > -1) {
e.preventDefault();
return false;
}
return true;
});
}
答案 0 :(得分:0)
您还可以编写enableK()
函数,使用.off()
删除事件处理程序:http://api.jquery.com/off/
$(document).off("keydown");
这将删除附加到document
的所有处理程序。更好的方法是使用boolean
标记来跟踪您的图库是否已打开,例如:
var isGalleryOpen = false;
当您关闭它时,打开图库:isGalleryOpen = true
和= false
。
然后你可以写:
if ($.inArray(key, ar) > -1 && isGalleryOpen)
如果图库已打开,它将仅阻止按键。
答案 1 :(得分:0)
您需要存储禁用密钥的函数的命名引用。然后,您可以使用该命名函数删除侦听器:
function disableKeys(e) {
var ar = new Array(9, 32, 33, 34, 35, 36, 37, 38, 39, 40);
var key = e.which;
if ($.inArray(key, ar) > -1) {
e.preventDefault();
return false;
}
return true;
}
function disableK() {
$(document).on('keydown', disableKeys);
}
function enableK() {
$(document).off('keydown', disableKeys);
}