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/