Как определить, является ли щелчок() щелчком мыши или вызван каким-то кодом?
Как определить, является ли щелчок() щелчком мыши или вызван каким-то кодом?
Ответ 1
Используйте свойство which
объекта события. Это должно быть undefined
для событий, вызванных кодом:
$("#someElem").click(function(e) {
if(e.which) {
//Actually clicked
}
else {
//Triggered by code
}
});
Здесь приведено рабочий пример.
Обновить на основе комментариев
Нажатие клавиши Enter, когда элемент input
имеет фокус, может вызвать событие click
. Если вы хотите различать клики с кодовым нажатием и все другие клики (мышь или клавиатура), то вышеуказанный метод должен работать нормально.
Ответ 2
Вы должны проверить e.originalEvent:
$("#someElem").click(function(e) {
if(e.originalEvent === undefined) {
//triggered
}
else {
//clicked by user
}
});
Ответ 3
Подождите некоторое время и используйте event.isTrusted
- его поддерживают IE9, Opera 12 и Firefox Nightly. Webkit также будет поддерживать его.
В настоящее время нет надежного способа узнать.