我很困惑为什么当我按下一个键时,我的功能是不记录keydown事件?
window.addEventListener('keydown', function(e) {
console.log(e);
});
<h1> Start typing </h1>
答案 0 :(得分:2)
我认为正确的方法必须是使用文档对象而不是窗口对象。
以下代码应该有效:
document.addEventListener('keydown', function(e) {
console.log("event", e);
});
答案 1 :(得分:1)
您的代码段似乎没问题。因此,它可能与您运行它的周围环境有关。
(也就是说,如果使用@Override
public void onBindViewHolder(MoviesViewHolder holder, int position) {
holder.movieGenreTextView.setText("");
Movie movie = mMoviesDetails.get(mMovies.get(position).getId());
if(movie != null){
/// set data to holder
}else {
//load data from network
loadGenres(mMovies.get(position).getId());
}
}
的其他答案对您没有帮助。)
请调查失败的情况。可能的原因可能是任何EventListener沿着冒泡方式取消document
。
您正在获取最高级别keyEvent
,即窗口级别(甚至高于文档级别)。
如果沿事件方式停止冒泡,您将看不到它。
试试例子
keydown
这也会阻止您在orignal事件监听器中看到keydown。