2010-12-28 3 views

Antwort

4

Kurzgeschichte, nein.

Das einzige, was Sie untersuchen können, ist die event object, die in einen Callback-Handler (der "Event-Handler") übergeben wird. Wie typeof in seiner Antwort vorgeschlagen, gibt es möglicherweise Eigenschaften, die nicht festgelegt werden, wenn das Ereignis durch Gerät ausgelöst wurde (oder umgekehrt), aber dann wieder ist es 100% NICHT zuverlässig. Beispiel:

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

Mit dieser Technik können Sie dem Ereignisobjekt eine beliebige Eigenschaft hinzufügen. Auch hier gibt es keine zuverlässige Möglichkeit festzustellen, ob ein Ereignis aufgrund eines Geräts oder Skripts ausgelöst wurde.

+1

Interessante nehmen auf diese. Ich denke, es ist sehr unwahrscheinlich, dass dies auftritt ... und wenn Sie nur mit Ihrem eigenen Code arbeiten, können Sie sicherstellen, dass dies ** niemals ** passieren wird, indem Sie die Eigenschaft originaryEvent nicht übergeben. – typeof

2

Sieht aus wie Sie das Ereignisobjekt an den Ereignishandler übergeben inspizieren können, um zu sehen, ob es ein künstliches Ereignis war oder nicht:

if(event.originalEvent) { 
    ... 
} 

Es ist wie das Ereignisobjekt scheint haben eine Eigenschaft originalEvent genannt, wenn Das Ereignis wurde vom Eingabegerät und nicht vom Skript ausgelöst.

Verwandte Themen