Το αντικείμενο event
Το αντικείμενο event δημιουργείται όταν πυροδοτείται
ένα γεγονός και περιέχει πληροφορίες γι' αυτό. Όταν εμφανίζεται
ένα γεγονός, το αντικείμενο event μεταβιβάζεται στη
συνάρτηση-χειριστή.
Ιδιότητες και μέθοδοι του αντικειμένου event
Παρακάτω στον πίνακα αναφέρονται οι ιδιότητες και οι μέθοδοι
του αντικειμένου event και η περιγραφή τους:
| Όνομα | Περιγραφή |
|---|---|
event.currentTarget |
Το τρέχον στοιχείο DOM στο στάδιο της ανύψωσης του γεγονότος. Συνήθως
αυτή η ιδιότητα είναι ισοδύναμη με το this της συνάρτησης.
|
event.data |
Προαιρετική παράμετρος. Αντικείμενο δεδομένων, που μεταβιβάζεται στη μέθοδο γεγονότος κατά την προσάρτηση του εκτελέσιμου χειριστή. |
event.delegateTarget |
Το στοιχείο στο οποίο είχε προσαρτηθεί ο μόλις κληθείς
jQuery χειριστής γεγονότος. Αυτή η ιδιότητα είναι πιο χρήσιμη
σε ανατεθειμένα γεγονότα, όταν ο χειριστής είναι δεμένος σε
πρόγονο του επεξεργαζόμενου στοιχείου. Για μη ανατεθειμένους
χειριστές, που είναι δεμένοι απευθείας στο στοιχείο,
η τιμή event.delegateTarget αντιστοιχεί
στην τιμή event.currentTarget.
|
event.isDefaultPrevented |
Η μέθοδος ελέγχει αν έχει κληθεί η μέθοδος
event.preventDefault
για αυτό το αντικείμενο γεγονότος.
|
event.isImmediatePropagationStopped |
Η μέθοδος ελέγχει αν έχει κληθεί η μέθοδος
event.stopImmediatePropagation
για αυτό το αντικείμενο γεγονότος.
|
event.isPropagationStopped |
Η μέθοδος ελέγχει αν έχει κληθεί η μέθοδος
event.stopPropagation
για αυτό το αντικείμενο γεγονότος.
|
event.isPropagationStopped |
Η μέθοδος ελέγχει αν έχει κληθεί η μέθοδος
event.stopPropagation
για αυτό το αντικείμενο γεγονότος.
|
event.metaKey |
Η μέθοδος ελέγχει αν είχε πατηθεί το πλήκτρο
META τη στιγμή της πυροδότησης
του γεγονότος. Ανάλογα με την πλατφόρμα, το πλήκτρο
μπορεί να διαφέρει. Επιστρέφει true ή
false.
|
event.namespace |
Ο χώρος ονομάτων, που καθορίστηκε τη στιγμή της κλήσης του γεγονότος. Αυτή η ιδιότητα μπορεί να αποδειχθεί χρήσιμη για τους συγγραφείς προσθηκών, των οποίων οι εργασίες εξαρτώνται από τον χώρο ονομάτων που χρησιμοποιείται. |
event.pageX |
Δείχνει τη θέση του ποντικιού σε σχέση με την αριστερή άκρη του εγγράφου. |
event.pageY |
Δείχνει τη θέση του ποντικιού σε σχέση με την πάνω άκρη του εγγράφου. |
event.preventDefault |
Εάν καλείται αυτή η μέθοδος, τότε η ενέργεια
που ορίζεται από προεπιλογή για αυτό το γεγονός δεν θα
εκτελεστεί. Για παράδειγμα, το πάτημα σε έναν σύνδεσμο
δεν θα οδηγήσει σε μετάβαση σε νέα URL. Για
να ελέγξετε αν έχει κληθεί αυτή η
μέθοδος, μπορείτε να χρησιμοποιήσετε τη μέθοδο
event.isDefaultPrevented.
|
event.relatedTarget |
Επιστρέφει ένα άλλο στοιχείο DOM, που συμμετέχει
στο γεγονός, εάν υπάρχει τέτοιο. Για
mouseout δείχνει σε ποιο
στοιχείο είναι τοποθετημένο το ποντίκι, για mouseover
από ποιο στοιχείο ο δρομέας του ποντικιού απομακρύνθηκε.
|
event.result |
Η τελευταία τιμή, που επέστρεψε ο χειριστής
του πυροδοτημένου γεγονότος, που δεν είναι ίση με
undefined. Η ιδιότητα μπορεί να είναι χρήσιμη
για τη λήψη τιμών από δικά σας γεγονότα.
|
event.stopImmediatePropagation |
Ακυρώνει τη λειτουργία όλων των υπολοίπων χειριστών
γεγονότων, που σχετίζονται με το στοιχείο και αποτρέπει
την ανύψωση του γεγονότος προς τα πάνω στο δέντρο DOM. Για
να απαγορεύσετε απλώς στο γεγονός να ανυψωθεί στα
στοιχεία-πρόγονα, αλλά να επιτρέψετε τη λειτουργία άλλων
χειριστών γεγονότων, μπορείτε να χρησιμοποιήσετε τη μέθοδο
event.stopPropagation. Χρησιμοποιήστε τη μέθοδο
event.isImmediatePropagationStopped, για
να ελέγξετε αν έχει κληθεί η
event.stopImmediatePropagation για αυτό το
αντικείμενο γεγονότος.
|
event.stopPropagation |
Αποτρέπει την ανύψωση του γεγονότος προς τα πάνω στο δέντρο
DOM. Θυμηθείτε ότι άλλοι χειριστές
θα συνεχίσουν να λειτουργούν για αυτό το στοιχείο. Αυτή η
μέθοδος λειτουργεί για δικά σας γεγονότα, που προκαλούνται
με τη μέθοδο
trigger.
Για να ελέγξετε αν έχει κληθεί αυτή η μέθοδος,
χρησιμοποιήστε το event.isPropagationStopped.
|
event.target |
Το στοιχείο DOM, που πυροδότησε το γεγονός. Αυτό μπορεί
να είναι το στοιχείο που έχει εγγραφεί για το γεγονός ή
ο απόγονος του. Είναι πολύ χρήσιμο να συγκρίνετε
το event.target και το this, για να προσδιορίσετε
την ανύψωση του γεγονότος. Η ιδιότητα είναι χρήσιμη κατά την ανάθεση
γεγονότος, όταν τα γεγονότα ανυψώνονται.
|
event.timeStamp |
Διαφορά χρόνου σε χιλιοστά του δευτερολέπτου μεταξύ
των στιγμών δημιουργίας του γεγονότος από το πρόγραμμα περιήγησης και
1 Ιανουαρίου 1970. Η ιδιότητα μπορεί να είναι
χρήσιμη για τον προσδιορισμό της απόδοσης
γεγονότος με τη λήψη διαφοράς τιμών
event.timeStamp για δύο στιγμές
χρόνου στον κώδικα. Εάν απλώς θέλετε
να λάβετε την τρέχουσα ώρα μέσα στο χειριστή
γεγονότος, χρησιμοποιήστε τη μέθοδο
getTime.
|
event.type |
Σε αυτή την ιδιότητα καθορίζεται ο τύπος του γεγονότος. |
event.which |
Αυτή η ιδιότητα δείχνει ποιο πλήκτρο
πληκτρολογίου ή ποντικιού είχε πατηθεί. Για το ποντίκι:
1 - αριστερό κουμπί, 2 - τροχός,
3 - δεξί κουμπί. Χρησιμοποιήστε
το event.which αντί για το event.button.
|
Άλλες ιδιότητες του αντικειμένου event
Υπάρχουν και άλλες ιδιότητες, που αντιγράφονται
στο αντικείμενο event:
altKey, button, buttons, cancelable,
char, charCode, clientX, clientY,
ctrlKey, detail, eventPhase, key,
keyCode, offsetX, offsetY, originalTarget,
screenX, screenY, shiftKey,
toElement, view.
Για να έχετε πρόσβαση σε ιδιότητες, που δεν αναφέρονται παραπάνω,
μπορείτε να χρησιμοποιήσετε το αντικείμενο event.originalEvent.
Παράδειγμα
Ας εμφανίζουμε σε ένα div - ποια πλήκτρα είχαν πατηθεί:
<input id="test" value="πληκτρολογήστε κάτι">
<div id="text"></div>
$('#test').on('keydown', function(event) {
$('#text').html(event.type + ": " + event.which);
});
Παράδειγμα
Ας εμφανίζουμε σε ένα div - σε ποια ετικέτα θα κάνουμε κλικ:
<body>
<div id="text"></div>
<div>
<p>
<strong><span>κλικ</span></strong>
</p>
</div>
</body>
span, strong, p {
display: block;
padding: 10px;
border: 1px solid black;
}
$('body').click(function(event) {
$('#text').html('clicked: ' + event.target.nodeName);
});
Δείτε επίσης
-
μέθοδος
on,
που επιτρέπει να δεσμεύσετε έναν χειριστή γεγονότων σε ένα στοιχείο -
μέθοδος
trigger,
που επιτρέπει να εκκινήσετε όλους τους χειριστές γεγονότων, που είναι δεσμευμένοι σε ένα στοιχείο για γεγονότα καθορισμένου τύπου -
μέθοδος
triggerHandler,
που επιτρέπει να εκκινήσετε όλους τους χειριστές γεγονότων, που είναι δεσμευμένοι σε ένα στοιχείο - γεγονότα jQuery