Ну, этот вопрос уже задавался, но в контексте jQuery. В jQuery мы можем проверить это с помощью свойства originalEvent объекта события (ссылка), которое сообщает, является ли это ручным или запрограммированным событием.
В моем случае я использую прослушивателисобытий 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);
и многое другое...