Javascript Jquery将键绑定到除类之外的主体
我试图将一个键绑定到我的整个页面,除了一类元素Javascript Jquery将键绑定到除类之外的主体,javascript,jquery,keypress,Javascript,Jquery,Keypress,我试图将一个键绑定到我的整个页面,除了一类元素 $('*').not('.textarea-note').keypress(function (event) { // if key pressed is space if (event.which == 32) { alert('space pressed'); event.preventDefault(); } }); 问题是我需要执行preventDefault(),当我在文本区域中时
$('*').not('.textarea-note').keypress(function (event) {
// if key pressed is space
if (event.which == 32) {
alert('space pressed');
event.preventDefault();
}
});
问题是我需要执行preventDefault(),当我在文本区域中时,我无法生成空格字符
我做错了什么,或者除了某个类或其他东西,我不可能绑定到所有的东西
提前谢谢
编辑:
在罗兰的评论之后,我想到了这个,它工作得非常好
$(document).keypress(function (event) {
// if key pressed is space
if (event.which == 32 && event.target.nodeName != "TEXTAREA") {
if (videoPlaying) {
pauseVideo();
} else {
playVideo();
}
event.preventDefault();
}
});
我想你在找这个
$(文档)。按键(功能(事件){
//如果按下该键,则为空格
if(event.which==32){
if(event.target.id!=“a1”){//for class$(event.target.attr('class'))
警报(“空格按下”);
event.preventDefault();
}
}
});代码>
将侦听器添加到文档中,然后使用event.target检查焦点在哪里我正试图将一个键绑定到整个页面上
为什么<代码>问题是我需要执行preventDefault()
为什么?真的,看起来像是XY问题你有没有可能包括小提琴?还有一点关于为什么要这样做的背景知识?我有一个视频在页面中播放,我需要按空格来启动/暂停视频。但我在页面上有文本区域,当聚焦时,它们需要空格字符。preventDefault()是必需的,因为如果您专注于正文并按空格键,页面将向下滚动我想要阻止的内容。.target
方法非常适合事件委派。感谢您的回答,我用我在代码中所做的更改编辑了我的帖子,我也像您一样使用event.target。.target
是事件的最佳实践delegation@dib如果我的回答是正确的,欢迎接受,表示感谢。