javascript - 如果单击某些 div,则不执行 keydown 函数

标签 javascript jquery html function keydown

如果用户按空格键,我的脚本会执行一些操作(例如停止一个音频播放器):

$('html').keydown(function(e){
   if(e.keyCode == 32){
       // Stop the audio player
   }
}

但是当用户尝试在文本区域中写入消息时,问题就出现了,因为之前的函数执行了(而且非常烦人)...如果用户正在写入消息,我该怎么做才能不执行该函数在文本区域或其他元素上?

最佳答案

当用户将焦点集中在某些控件上时,您需要跳过,如果用户在文本区域中键入内容,此示例将阻止播放器停止。

$(function () {
            $(document).keypress(function (e, f) {

                var tagName = e.target.tagName.toLowerCase();
                if (tagName != 'textarea') {
                    if (e.keyCode == 32) {
                        console.log('Stop Playing');
                    }
                }
            });
        });

希望这会有所帮助。

关于javascript - 如果单击某些 div,则不执行 keydown 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25867254/

相关文章:

javascript - 在 javascript 中设置 CSS 渐变?

javascript - 在触摸设备上的 HTML5 Canvas 上绘图

php - 将自然语言日期/时间值解析为格式化的日期/时间字符串

jquery - 为移动设备制作响应式导航

jquery - jQuery 自动完成菜单中奇怪的白框

javascript - 我希望子菜单在鼠标移到它上面时保持打开状态

javascript - 服务器端事件出现错误

javascript - Yii2 Ajax 过滤器 onblur

javascript - 浏览器重新格式化我的 HTML,导致不同的外观

javascript - 如何设置这个 "slider"每5秒改变一次