gpt4 book ai didi

javascript - 如何检查焦点事件是否以编程方式触发

转载 作者:行者123 更新时间:2023-11-29 19:03:42 27 4
gpt4 key购买 nike

我想知道焦点事件是程序触发的还是人为触发的?

我正在写脚本的部分

    jQuery( document ).on( 'focus', '#song_artist_focus', function(event) {
if(event.originalEvent === undefined ){
alert('I am not human');
return;}
alert('I am human') ;
});


当我像这样以编程方式调用这个脚本时

jQuery('#song_artist_focus').focus();

还是说明事件是人为触发的。请帮忙?

更新

我检查了这个解决方案 Check if event is triggered by a human .但不适用于焦点事件。

最佳答案

你的问题是 focus 事件没有冒泡。
jQuery 用一点魔法修复了这个问题,使它更像其他事件,但它仍然不像一个自然冒泡的事件。
要解决此问题,请改用 focusin 事件,因为它会冒泡,并执行 .trigger('focusin')

jQuery(document).on('focusin', '#song_artist_focus', function(event) {
if (event.originalEvent === undefined) {
console.log('I am not human');
} else {
console.log('I am human');
}
});


jQuery('#song_artist_focus').trigger('focusin');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="song_artist_focus">

关于javascript - 如何检查焦点事件是否以编程方式触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44616043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com