Javascript 启动/停止按键事件jquery
我有个问题。我想在按下空格时停止按键事件,然后我想做些什么,最后我需要“重新启动”这个功能。有可能吗?我该怎么做 先谢谢你Javascript 启动/停止按键事件jquery,javascript,jquery,keypress,Javascript,Jquery,Keypress,我有个问题。我想在按下空格时停止按键事件,然后我想做些什么,最后我需要“重新启动”这个功能。有可能吗?我该怎么做 先谢谢你 $(document).keypress(function(e) { if(e.keyCode == 32) // stop keypress function // do something // restart keypress function } 尝试以下功能之一: e.stopPropagat
$(document).keypress(function(e) {
if(e.keyCode == 32)
// stop keypress function
// do something
// restart keypress function
}
尝试以下功能之一:
e.stopPropagation();
或
完整代码:
$(document).keypress(function(e) {
if (e.keyCode == 32) {
e.preventDefault(); // e.stopPropagation();
}
})
我相信你有两个选择 禁用处理程序:
$(document).on('keypress', function keypressHandler(e) {
//disable handler
$(document).off('keypress');
//do stuff
//enable keypress handler
$(document).on('keypress', keypressHandler);
});
使用标志:
var keyHandlerActive = true;
$(document).on('keypress', function(e) {
if (!keyHandlerActive) { return; }
keyHandlerActive = false;
//do stuff
keyHandlerActive = true;
});
嗯,你可以像这样玩它,因为我为这两种情况都添加了两个按钮,默认情况下,空间将被禁用。请查收: HTML
<input id="myinput" type="text">
<input id="space_flag" type="hidden" value="0">
<br/>
<input id="enable_space" type="button" value="Enable Space">
<br/>
<input id="disable_space" type="button" value="Disable Space">
工作示例您的关闭条件是空间,但未提及打开条件。。所以我使用下面的计时器。。随你的便 要尝试演示
var logicalOff=false;
$(文档)。按键(功能(e){
if(logicalOff){return true;}//我们只是忽略并返回,直到打开为止
$('div').text(e.which);
如果(e.which==32){
logicalOff=true;//停止按键功能
setTimeout(函数(){//重新启动按键功能
logicalOff=假;
$('div').text(“现在打开”);
}, 10000);
$('div').text(“关闭10秒”);
}
});代码>
谢谢,我使用第一种方法,效果很好。
<input id="myinput" type="text">
<input id="space_flag" type="hidden" value="0">
<br/>
<input id="enable_space" type="button" value="Enable Space">
<br/>
<input id="disable_space" type="button" value="Disable Space">
$(function(){
$("#myinput").keypress(function(event){
if(event.keyCode == 32 && $("#space_flag").val()==0){
return false;
}
});
$("#enable_space").click(function(event){
$("#space_flag").val(1);
});
$("#disable_space").click(function(event){
$("#space_flag").val(0);
});
});