【发布时间】:2020-02-03 17:48:56
【问题描述】:
这个问题之前已经被问过,但在 jQuery 的上下文中。在 jQuery 中,我们可以通过事件对象 (link) 的 originalEvent 属性 来判断它是手动事件还是编程事件。 p>
就我而言,我使用 Javascript事件监听器和触发器。在这种情况下,我们能否区分这两种事件 (编程和手动)?
如果没有,那么有什么解决方法吗?
我的听众:
function setUpListeners(){
_cellViewWrapper.addEventListener('mousedown',mouseDownHandler,false);
_cellViewWrapper.addEventListener('mouseover',mouseEnter,false);
_cellViewWrapper.addEventListener('blur',blurHandler,true);
_cellViewWrapper.addEventListener('focus',focusEventHandler,true);
}`
触发用例:
if(!IE_FLAG) hidePicker(); //if browser is internet explorer else{ //if blur is allowed then hide Picker if(_ieBlurAllowed) hidePicker(); //if blur is not allowed -- keep focus on picker input //triggering the focus event here else blurredElement.focus(); / }if((inputElem !== _focussedInput)) setTimeout(function(){ inputElem.focus(); },10);
还有更多...
【问题讨论】:
-
jquery 只是 javascript。如果在jquery中你可以做到,你可以在js中做到。
-
hmmm....知道他们是如何在 jQuery 中做到这一点的吗?
-
什么代码以编程方式触发事件?
-
event.isTrusted- 但仅支持部分浏览器 -
“在 jQuery 中,事件对象具有 originalEvent 属性,通过它我们可以判断它是手动事件还是编程事件”——我对此表示怀疑。文档只说某些事件可能具有比 jQuery
Event对象提供的属性更多的属性,并且originalPrevent可用于访问这些属性,因为它指的是本机 JS Event 对象。但我不明白这将如何区分用户触发的事件和脚本触发的事件。
标签: javascript dom-events