通过Java触发键盘单击

时间:2019-01-22 20:21:36

标签: 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'}));

我认为其中之一实际上会像Enter键,然后按一下播放/暂停键。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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

正如@ScottMarcus在评论中提到的,一个更好的主意是触发您的keypress事件而不是事件本身触发的操作。例如,如果您设置了以下事件:

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

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