我有一个“弹出”div,当显示它时,我想禁用页面上的任何keypress
或keydown
事件。
我尝试了下面的代码:
$(document).on('keypress keydown',function (e) {
var key = e.which;
if(key == 32 && $(".popup").is(":visible")){
// console.log($(".popup").is(":visible"));
// alert("keypresses yr "+(key == 32 && $(".popup").is(":visible")));
e.preventDefault();
return false;
}
});
在这里,在if
条件下,我检查按下的键是否是spacebar (32)
,并且popup
框比仅禁用keypress
更可见。
没起作用!
我正在使用jquery版本的1.11.1
。
发布于 2016-08-12 13:00:50
尝试将代码切换到以下内容:
$(document).on('keypress keydown',function (e) {
return $(".popup").is(":visible") && e.which !== 9 && e.which !== 32;
});
如果弹出窗口可见,上面的代码将返回所有按下的键,tab
和space
,除外。
工作片段:
$(document).on('keypress keydown', function(e) {
/* I changed it to ':focus' to demonstrate how it works inside the input */
return $("#txt").is(":focus") && e.which !== 9 && e.which !== 32;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<input id="txt" type="text" />
https://stackoverflow.com/questions/38918591
复制相似问题