通过按空格键禁用滚动,然后如何在textarea和...中启用空白?

时间:2018-12-26 23:58:48

标签: javascript jquery

我已通过使用代码按空格键禁用了滚动 内联(434)

然后我使用内联代码(427-432)通过在身体的任何位置按空格键来播放/暂停视频。

//那么如何在textarea中启用空格?

以及如何通过在文本区域中按空格键来禁用播放/暂停视频? //

我已经尝试过内联代码(433)以在textarea中启用空格,但这不起作用。

https://imgur.com/a/morZomC

427-432:

Object.defineProperty(HTMLMediaElement.prototype, 'playing', { get: function() {

return !!(this.currentTime > 0 && !this.paused && !this.ended && this.readyState > 2); } });

$("body").on("keydown", function(e) { if (e.keyCode == 32) { if (document.querySelector("video").playing) { $("video")[0].pause(); } else { $("video")[0].play(); } } });

433:

$("#comment").on("keydown", function(e) { if (e.keyCode == 32) { return true; } });

434:

$(document).keydown(function(e) { if (e.which == 32) { return false; } });

1 个答案:

答案 0 :(得分:1)

在您的document侦听器中,如果事件的return false不是target,则只有textarea

$(document).keydown(function(e) {
  if (e.which == 32 && e.target.tagName !== 'TEXTAREA') {
    return false;
  }
});
body {
  height: 2000px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea></textarea>

或者,另外在input s中允许空格:

$(document).keydown(function(e) {
  if (e.which == 32 && !['TEXTAREA', 'INPUT'].includes(e.target.tagName)) {
    return false;
  }
});
body {
  height: 2000px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea></textarea>
<input>