我有一个聊天区,消息在哪里,以及下面的聊天输入。正如您在此结构中所看到的那样:
加载后我运行此功能:
function activate_key_detection()
{
$(document).keydown(function(e)
{
code = (e.keyCode ? e.keyCode : e.which);
if(e.ctrlKey)
{
if(window.getSelection().toString() != "")
{
return;
}
}
$('#chat_input').focus();
if(code == 13)
{
send_to_chat();
e.preventDefault();
return false;
}
if(code == 38)
{
$('#chat_input').val(last_input);
e.preventDefault();
return false;
}
if(code == 27)
{
if($('#overlay').css('display') == 'block')
{
hide_boxes();
e.preventDefault();
return false;
}
else
{
clear_input();
}
}
});
}
正如您所看到的那样,它首先聚焦输入,当键是向上箭头(38)时,它会捕获它,修改输入并尝试阻止它们的默认行为键。
问题是,当我第一次点击聊天区域内部,然后按向上箭头时,它仍会将聊天区域滚动一行。后续按下向上箭头不会进一步滚动聊天区域。
我也试过在那里添加e.stopPropagation(),但无济于事。
欢迎任何帮助。