Есть ли способ определить, было ли событие инициировано с помощью устройств ввода или с помощью сценария, как в .onEvent ()? - PullRequest
2 голосов
/ 29 декабря 2010

Есть ли способ определить, было ли событие инициировано с помощью устройств ввода или с помощью сценария, как в .onEvent()?

Ответы [ 2 ]

4 голосов
/ 29 декабря 2010

Короткая история, нет.

Единственное, что вы можете исследовать, это event object, который передается в обработчик обратного вызова («обработчик событий»).Как и typeof , предложенный в его ответе, могут существовать свойства, которые не устанавливаются, если событие было инициировано устройством (или наоборот), но, опять же, это на 100% НЕ надежно.Пример:

$('someinputcontrol').trigger({
    type:          'keydown',
    originalEvent: true
});

Вы можете добавить любое свойство к объекту события, используя эту технику.Итак, еще раз, нет надежного способа определить, было ли событие вызвано устройством или сценарием.

2 голосов
/ 29 декабря 2010

Похоже, что вы можете проверить объект события, переданный в обработчик события, чтобы увидеть, было ли это искусственное событие или нет:

if(event.originalEvent) {
    ...
}

Похоже, что объект события будет иметь свойство с именем originalEvent , если событие было инициировано устройством ввода, а не сценарием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...