Javascript 恢复箭头键的默认值
我正在使用一个脚本(impress.js),它为左箭头、右箭头、上箭头和下箭头存储一些特定的操作来设置keyup和keydown事件 在某些特定时刻(例如在文本区域中键入时),我希望返回箭头的默认行为 我试过了,但没有成功Javascript 恢复箭头键的默认值,javascript,jquery,impress.js,Javascript,Jquery,Impress.js,我正在使用一个脚本(impress.js),它为左箭头、右箭头、上箭头和下箭头存储一些特定的操作来设置keyup和keydown事件 在某些特定时刻(例如在文本区域中键入时),我希望返回箭头的默认行为 我试过了,但没有成功 $("a#show-ta").click( function() { document.addEventListener("keydown", function ( event ) { if (event.keyCode >= 37 &&
$("a#show-ta").click( function() {
document.addEventListener("keydown", function ( event ) {
if (event.keyCode >= 37 && event.keyCode <= 40) {
return;
}
});
document.addEventListener("keyup", function ( event ) {
if (event.keyCode >= 37 && event.keyCode <= 40) {
return;
}
});
});
$(“显示ta”)。单击(函数(){
文档.添加的事件列表器(“键控”,函数(事件){
如果(event.keyCode>=37&&event.keyCode=37&&event.keyCode您希望防止按键冒泡到(我假设)Impress绑定其处理程序的文档:
$("textarea").on('keyup keydown keypress', function(e) {
e.stopPropagation();
});
您希望防止按键冒泡到(我假设)Impress绑定其处理程序的文档:
$("textarea").on('keyup keydown keypress', function(e) {
e.stopPropagation();
});
如果需要在特定区域(如texarea)中传播事件,则应按如下方式停止事件传播:
$('textarea').keydown( function(ev) {
ev.stopPropagation();
});
例如,如果整个页面都需要这些事件,但您希望在文本区域中排除这些事件,则可以在事件中发出一个要验证的标志
var keydownActivated = true;
$('textarea').keydown( function(ev) {
if (keydownActivated) {
ev.preventDefault();
// dostuff
}
});
如果需要在特定区域(如texarea)中传播事件,则应按如下方式停止事件传播:
$('textarea').keydown( function(ev) {
ev.stopPropagation();
});
例如,如果整个页面都需要这些事件,但您希望在文本区域中排除这些事件,则可以在事件中发出一个要验证的标志
var keydownActivated = true;
$('textarea').keydown( function(ev) {
if (keydownActivated) {
ev.preventDefault();
// dostuff
}
});
这或多或少会让你知道你要去哪里。创建一个跟踪textarea是否有焦点的标志,并在当前按键事件处理程序中检查该标志。我看不到你的所有代码,因此这只是一个简单的示例:
var textareaHasFocus = false;
var textarea = document.querySelector('#yourTextarea');
textarea.addEventListener('focus', function(event) {
textareaHasFocus = true;
}, false);
textarea.addEventListener('blur', function(event) {
textareaHasFocus = false;
}, false);
document.addEventListener("keydown", function ( event ) {
if (textareaHasFocus) return true;
// your current keyboard handler
});
document.addEventListener("keyup", function ( event ) {
if (textareaHasFocus) return true;
// your current keyboard handler
});
这或多或少会让你知道你要去哪里。创建一个跟踪textarea是否有焦点的标志,并在当前按键事件处理程序中检查该标志。我看不到你的所有代码,因此这只是一个简单的示例:
var textareaHasFocus = false;
var textarea = document.querySelector('#yourTextarea');
textarea.addEventListener('focus', function(event) {
textareaHasFocus = true;
}, false);
textarea.addEventListener('blur', function(event) {
textareaHasFocus = false;
}, false);
document.addEventListener("keydown", function ( event ) {
if (textareaHasFocus) return true;
// your current keyboard handler
});
document.addEventListener("keyup", function ( event ) {
if (textareaHasFocus) return true;
// your current keyboard handler
});
我建议在textarea有焦点时使用一个标志来绕过正常事件handlers@RobM.你能告诉我更多的细节吗?我不是很专业,我建议在文本区域有焦点时使用标志来绕过你的正常事件handlers@RobM.你能告诉我更多的细节吗?我不是那么专业谢谢,这正是我需要的,我会接受答案谢谢,这正是我需要的,我会接受答案的