javascript - 通过 Javascript 触发键盘点击

标签 javascript

Jquery/Javascript 事件触发器似乎没有触发事件元素。

我有一个播放/暂停按钮,我正试图通过 Javascript 在它们之间切换。当使用我的物理键盘并按下 Enter 键时,我看到它在它们之间切换。当试图通过代码触发它时,它似乎实际上没有做任何事情。

我尝试过的一些事情:

jQuery.event.trigger({type: 'keyup', which : 13});

jQuery.event.trigger({type: 'keydown', which : 13});

document.activeelement.dispatchEvent(new KeyboardEvent('keypress',{'key':'enter'}));

我认为其中一个实际上会像回车键一样按播放/暂停键。

有什么想法吗?

最佳答案

要触发特定的按键,请创建一个 jQuery 按键 Event,设置要模拟的键,然后在您的 DOM 对象(可能是您的播放器)上触发创建的事件。

var e = $.Event('keypress');
e.which = 13; // Enter key
$('#my-player').trigger(e);

正如@ScottMarcus 在评论中提到的,更好的想法是触发按键事件所采取的操作,而不是事件本身。例如,如果您设置了以下事件:

$('#my-player').keypress(function(e) {
  if (e.which == 13) {
    togglePlayButton();
  }
});

您可以直接调用 togglePlayButton(); 来模拟按键。不要为此牺牲代码的清晰度。

关于javascript - 通过 Javascript 触发键盘点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54315902/

相关文章:

javascript - Materialise Modal 不适用于入门模板

javascript - 如何从 IE7 以外的所有浏览器中删除 js 文件

javascript - HTML5 Circle防止拖动到Canvas之外并防止碰撞

javascript - 如何检查 var 是否是 JavaScript 中的字符串?

javascript - 找不到 Karma + Jasmine + TypeScript + Webpack 的源映射

javascript - 打开指定宽度和高度的窗口

javascript - 组织 <pre> 标签布局

javascript - 如何使用 Node.js 以 70 个请求/秒的速度分发唯一优惠券代码

javascript - Safari 中对 createMediaElementSource() 的支持有多好?

javascript - 在 IE 中访问友好的 iframe 内容