按下ENTER键时,我将函数绑定到keydown事件。我希望此函数在ENTER键盘上触发,除非用户键入id为input_area
的textarea:
$(document).keydown(function(e) {
if (e.keyCode == 32 && e.target != $("#input_area")) {
scroll_to_location();
}
});
我尝试用$(document).unbind('keydown')
取消绑定整个keydown,但这对整个文档来说完全没有,而且只是在文本输入的短暂时间内。
是否有一种使用JQuery解析textarea输入事件的简洁方法?
答案 0 :(得分:1)
我建议像这样使用on / off来进行bind / unbind:
$(document).on('keydown', '#input_area', function(e) {
if(e.which == 13) {
console.log("enterPressed");
}
});
$(document).on('click', '#unbindBtn', function(e) {
$(document).off('keydown', '#input_area');
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<input id="input_area" placeholder="Tap Enter" />
<button id="unbindBtn">Unbind</button>
</body>
</html>
答案 1 :(得分:1)
您可以检查originalEvent目标ID,以查看它是否应该被忽略。
$(document).on('keydown', function (e) {
if (e.originalEvent.target.id === 'input_area') return;
//do logic
});