2012-05-22 7 views
28

stieß ich auf diese in einigen JS-Code Ich arbeitete an:In JavaScript, was ist event.isTrigger?

if (typeof(e.isTrigger) == 'undefined') { 
// do some stuff    
} 

Dies scheint ein Teil von jQuery zu sein. Soweit ich sehen kann, sagt es Ihnen, ob ein Ereignis mit dem Benutzer oder automatisch entstanden ist.

Ist das richtig? Und da es nicht dokumentiert ist, gibt es eine Möglichkeit, solche Dinge zu finden, ohne hinter den Vorhang der jQuery API zu gehen?

+6

Das ist ziemlich hässlich. 'if (! e.isTrigger)' soll das geschrieben werden. Wenn jQuery es jemals explizit auf 'false' setzt, wird dieser Code ziemlich unordentlich zerbrechen. – meagar

+6

Da "e.isTrigger" nicht dokumentiert ist, wird nicht versprochen, dass es in zukünftigen Releases aufbewahrt wird und sollte nicht in Ihrem Produktionscode verwendet werden. – rhgb

Antwort

30

In jQuery 1.7.2 (unminified) Zeile 3148 enthält event.isTrigger = true; verschachtelt innerhalb der Trigger-Funktion. Also ja, Sie sind richtig - dies ist nur markiert, wenn Sie .trigger() verwenden und intern verwendet wird, um zu bestimmen, wie mit Ereignissen umzugehen ist.

3

Wenn Sie sich jQuery github project anschauen, können Sie in der Datei trigger.js 49 (link here) nachlesen, wie isTrigger berechnet wird.

enter image description here

Wenn Sie einen Trigger in Ihrem JavaScript und Debug hinzufügen durch, können Sie sehen, wie der Haltepunkt dieses Kodierzeilen erreicht (in jQuery-2.1.3.js geprüft this SO question)