到目前为止,我尝试根据This post定位所有事件侦听器,但没有成功:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row-eq-height search-block pers-load">
<div class="col-lg-12 add flush col-sm-12 col-xs-12">
<div class="tablerow">
<div class="tablecell">
<div class="col-lg-12 col-sm-12 col-xs-12">
<blockquote>COnatct</blockquote>
<span>05/07/2018</span>
<a class="btn hidden-xs" href="#">PRIMARY</a>
</div>
</div>
</div>
</div>
</div>
<div class="row-eq-height search-block pers-load">
<div class="col-lg-12 add flush col-sm-12 col-xs-12">
<div class="tablerow">
<div class="tablecell">
<div class="col-lg-12 col-sm-12 col-xs-12">
<blockquote>COnatct</blockquote>
<span>05/07/2018</span>
<a class="btn hidden-xs" href="#">PRIMARY</a>
</div>
</div>
</div>
</div>
</div>
和
getEventListeners(Element);
问这个的原因是:
我正在基于Mozilla的教程使用纯JavaScript构建2D breakout game,并设法通过各种功能和多个级别对其进行了增强。
我有一组添加的事件侦听器,以及一个将其删除的函数,到目前为止一切正常。
我没有针对键码13(即回车键)的事件监听器
问题是,如果在画布上进行动画时按Enter键,则每次按键后它都会随着球速度的增加而改变行为,最终渲染出不同的图形。
如果我不按Enter键,则一切正常。
唯一可以提高速度的事件侦听器是“点击”事件,但在函数执行后立即将其删除,并且不应干扰游戏。
另一个问题是,通过上述方法,没有找到事件侦听器,甚至没有找到我添加的事件侦听器,尽管它们仍然可以工作。
我找不到与该不良行为有关的任何东西,我想问一下是否还有其他方法可以查看活动事件侦听器。
Here是我正在使用的代码
[编辑:
在意识到该错误来自'Chrome Developer tools > Elements > Event listeners'
事件之后,添加keydown
解决了该问题。
但是,我不确定为什么一开始没有设置preventDefault()
时为什么会发生这种现象,以及为什么e.keyCode == 13
方法无法解决问题。
]
答案 0 :(得分:0)
我的猜测是,单击事件使长颈鹿关注焦点,使其可以使用Enter键触发。您可以尝试使用mousedown并阻止Default来防止长颈鹿集中注意力:
giraffe.addEventListener('mousedown', function(e){
e.preventDefault();
giraffe.classList.remove('pulsate');
setTimeout(function(){
giraffe.classList.add('pulsate');
}, 0);
yahoo.play();
});
答案 1 :(得分:0)
似乎该错误位于keyDownHandler
事件处理程序(e.preventDefault();
)中。这就是导致意外行为的原因。
将keyDownHandler
添加到function keyDownHandler(e) { //on key down
e.keyCode == 37 ? leftPressed = true : null;
e.keyCode == 39 ? rightPressed = true : null;
函数后,该错误消失了。
原始
:function keyDownHandler(e) { //on key down
e.preventDefault();
e.keyCode == 37 ? leftPressed = true : null;
e.keyCode == 39 ? rightPressed = true : null;
}
之后:
{{1}}
最终结果:按Enter键没有任何反应
向 @Joe Fitzsimmons 指出正确的方向