不使用jquery只执行一次事件侦听器函数
我制作了一段代码,用箭头上下垂直移动6个项目前面的元素.当按下enter时,我将加载一组带有该项目的图像.代码工作正常,但在输入命中后,这段代码需要停止,所以我可以用箭头键做其他事情并输入.现在它只是在输入被击中后继续前进.我尝试使用var检查,但是我似乎无法从交换机内部更改变量.有人知道如何使这项工作?
var enterPushed = false ; if (!enterPushed){ document.addEventListener( 'keydown' , function (event){ if (event.keyCode == 38){ console.log( "up" ); if (margTop > 122){ margTop = margTop - 60; marginTop(); i = i - 1; bliep.play(); } } if (event.keyCode == 40){ console.log( "down" ); if (margTop < 422){ margTop = margTop + 60; marginTop(); i = i + 1; bliep.play(); } } if (event.keyCode == 13){ switch(i){ case 1: enterPushed = true ; startup(1); break ; case 2: enterPushed = true ; startup(2); break ; case 3: enterPushed = true ; startup(3); break ; case 4: enterPushed = true ; startup(4); break ; case 5: enterPushed = true ; startup(5); break ; case 6: enterPushed = true ; startup(6); break ; } } }); } |
Mati Tucci.. 9
现在你可以once
在options
对象中传递一个布尔值,如下所示:document.body.addEventListener('click', _ => console.log('once'), {once: true});
资料来源: https ://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
浏览器兼容性: Chrome 55,Firefox 50,Safari(WebKit).
1> Mati Tucci..:
现在你可以once
在options
对象中传递一个布尔值,如下所示:document.body.addEventListener('click', _ => console.log('once'), {once: true});
资料来源: https ://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
浏览器兼容性: Chrome 55,Firefox 50,Safari(WebKit).
2> Kolby..:
如果要停止所有键事件,只需删除事件侦听器即可.
var enterPushed = false ; var handleKeyDown = function (){ if (event.keyCode == 38){ console.log( "up" ); } if (event.keyCode == 40){ console.log( "down" ); } if (event.keyCode == 13){ console.log( 'enter' ); document.removeEventListener( 'keydown' , handleKeyDown); } }; document.addEventListener( 'keydown' , handleKeyDown); |
如果你想停止只听输入或特定键,你可以添加一个标志并检查它和键码.这看起来就像你在这里几乎所做的那样.我完成了逻辑并减少了代码:
if (event.keyCode == 13 && enterPushed){ enterPushed = true ; startup(i); } |
这不是`.removeEventListener()`的工作原理.您需要提供原始功能.
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。