Μέθοδος off
Η μέθοδος off επιτρέπει την αποδέσμευση ενός χειριστή
συμβάντων από ένα στοιχείο. Για να δέσετε έναν χειριστή
μπορείτε να χρησιμοποιήσετε τη μέθοδο
off.
Σύνταξη
Έτσι αφαιρούμε έναν χειριστή συμβάντων από ένα στοιχείο,
ως πρώτη παράμετρο σε μορφή συμβολοσειράς
περνάμε ένα ή περισσότερα συμβάντα χωρισμένα
με κενά, δεύτερο - περνάμε έναν επιπλέον
φιλτραριστό επιλογέα για τα απογόνινα στοιχεία
(πρέπει να ταιριάζει με αυτό που περάσαμε
στη μέθοδο on όταν προσαρτούσαμε
τον χειριστή). Για να αφαιρέσετε όλα τα ανατεθειμένα συμβάντα,
περάστε την τιμή '**'. Η δεύτερη παράμετρος
είναι προαιρετική. Τρίτο περνάμε τη συνάρτηση-χειριστή
(που προσαρτήσαμε), στην οποία περνάται ένα αντικείμενο
συμβάντος ή περνάμε false:
$(επιλογέας).off(συμβάντα, [επιλογέας], συνάρτηση-χειριστής(αντικείμενο συμβάντος));
Μπορείτε να χρησιμοποιήσετε τη μέθοδο off με διαφορετικό τρόπο,
τότε στην πρώτη παράμετρο περνάται
ένα αντικείμενο JavaScript, όπου τα κλειδιά είναι ο τύπος συμβάντος, και
οι τιμές είναι οι συναρτήσεις-χειριστές που προσθέσαμε στο
στοιχείο:
$(επιλογέας).off({'τύπος συμβάντος': handler}, [επιλογέας]);
Μπορούμε απλά να περάσουμε μία παράμετρο σε μορφή
αντικειμένου jQuery.Event:
$(επιλογέας).off(συμβάν);
Αν δεν περάσουμε παραμέτρους στη μέθοδο, τότε θα αποδεσμεύσουμε από το στοιχείο όλους τους προσαρτημένους χειριστές:
$(επιλογέας).off();
Παράδειγμα
Ας προσθέσουμε στους παραγράφους τη συνάρτηση-χειριστή
testFunc. Αλλά αμέσως ας αφαιρέσουμε τον χειριστή από
τον δεύτερο παράγραφο, έτσι το κλικ στον δεύτερο παράγραφο δεν θα
οδηγήσει πουθενά (αν σχολιάσουμε την τελευταία
γραμμή κώδικα, θα δούμε πώς το συμβάν ενεργοποιείται και
με κλικ στον δεύτερο παράγραφο):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // προσθέτουμε χειριστή
$('#test2').on('click', {text: 'bbb'}, testFunc); // προσθέτουμε χειριστή
$('#test2').off('click', testFunc); // αφαιρούμε χειριστή