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

标签 javascript jquery

我已使用代码按空格键禁用滚动 在线(434)

我使用内联代码 (427-432) 通过在正文中的任意位置按空格键来播放/暂停视频。

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

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

我已经尝试使用代码内联 (433) 在 textarea 中启用空白,但它不起作用。

https://imgur.com/a/morZomC

427-432:

Object.defineProperty(HTMLMediaElement.prototype, '播放', { 获取:函数(){

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

$("body").on("keydown", function(e) { 如果 (e.keyCode == 32) { 如果(document.querySelector(“视频”)。播放){ $("视频")[0].暂停(); } 别的 { $("视频")[0].播放(); } } });

433:

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

434:

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

最佳答案

在您的 document 监听器中,只有当事件的 target 不是 textarea 时才返回 false:

$(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 中额外允许空格:

$(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>

关于javascript - 通过按空格键禁用滚动,然后如何在 textarea 和...中启用空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53938365/

相关文章:

javascript - 带前瞻功能的 array.split

javascript - 谷歌地图API : can I get the best auto suggest and geocode it?

javascript - 尝试更新 DOM 中的 HTML 表值时出现错误

javascript - Jquery nth-child 与 select 的问题

javascript - 从非 DOM 对象内部调度和处理自定义事件

javascript - 如何用jquery计数器实现一个简单的错误

javascript - Handlebars : How pass @index as parameter to custom helper

javascript - ionic 平台使用

javascript - X-editable $(...).editable 不是函数

jquery - 移动灯箱?