Как определить, является ли щелчок() щелчком мыши или вызван каким-то кодом?

Как определить, является ли щелчок() щелчком мыши или вызван каким-то кодом?

Ответ 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 также будет поддерживать его.

В настоящее время нет надежного способа узнать.