有没有办法确定JS事件是以编程方式还是通过实际的交互来触发?
问题描述:
说我用document.getElementById('myTextArea').focus();
编程设置了textarea
的焦点。在那textarea
我有一个onFocus
事件:有没有办法确定JS事件是以编程方式还是通过实际的交互来触发?
document.getElementsByName('myTextArea')[0].onFocus = function() {
alert('I’m focused!');
};
我只想当用户实际的重点是textarea
而不是当我通过编程设置集中onFocus
被解雇。
在onFocus
中有没有方法可以判断事件是由代码还是由人类触发的,而无需传入我自己的参数?
答
是的,当浏览器触发它时会产生一个'originalEvent'。
+0
我想你在考虑jQuery,而不是JavaScript ... –
+0
@BrandonDurham是真的。这是我发现解决它的唯一方法。 –
为什么当你不想这样做时,你有必要以编程方式设置焦点? – bugwheels94
@Ankit - 为了说明我的需要,这是一个过于简单的例子。 –
尝试检查悬停和焦点事件是否属实?只是扔在那里。 –