Można spojrzeć obiektu zdarzenia e
. Jeśli zdarzenie zostało wywołane przez prawdziwe kliknięcie, będziesz miał takie rzeczy jak clientX
, clientY
, pageX
, pageY
itp. Wewnątrz e
i będą to liczby; Liczby te są związane z pozycją myszy po uruchomieniu kliknięcia, ale prawdopodobnie będą obecne, nawet jeśli kliknięcie zostało zainicjowane za pomocą klawiatury. Jeśli zdarzenie zostało wywołane przez $x.click()
, nie będziesz miał normalnych wartości pozycji w e
. Możesz również spojrzeć na numer originalEvent
property, którego nie powinno tam być, jeśli wydarzenie pochodzi z $x.click()
.
Może coś takiego:
$("#foo").click(function(e){
if(e.hasOwnProperty('originalEvent'))
// Probably a real click.
else
// Probably a fake click.
});
A oto trochę piaskownica do zabawy: http://jsfiddle.net/UtzND/
W jaki sposób program go o wypalania zdarzenie programowo? – Clayton
Dlaczego trzeba rozróżniać przypadki? –
@ Clayton: '$ x.click()' lub '$ x.trigger (" kliknij ")'. –