Κυρίως - Μέθοδος noConflict() του jQuery
Επιδειγματα
Χρησιμοποιήστε τη μέθοδο noConflict() για να ορίσετε νέο όνομα για το μεταβλητό jQuery:
var jq=$.noConflict();
Ορισμός και χρήση
Η μέθοδος noConflict() παραχωρεί τον έλεγχο του μεταβλητού $ στον jQuery.
Η μέθοδος αυτή απελευθερώνει τον έλεγχο του μεταβλητού $ από το jQuery.
Η μέθοδος αυτή μπορεί επίσης να χρησιμοποιηθεί για να ορίσει νέο προσαρμοσμένο όνομα για το μεταβλητό jQuery.
Σημείωση:Πολύ χρήσιμο όταν άλλες βιβλιοθήκες χρησιμοποιούν το $ για τις συναρτήσεις τους.
Γραμματική
jQuery.noConflict(removeAll)
Παράμετροι | Περιγραφή |
---|---|
removeAll | Boolean. Υποδεικνύει αν επιτρέπεται η πλήρης επαναφορά του μεταβλητού jQuery. |
Επεξήγηση
Πολλές βιβλιοθήκες JavaScript χρησιμοποιούν το $ ως όνομα συνάρτησης ή μεταβλητής, όπως και το jQuery. Στο jQuery, το $ είναι απλώς ένα ψευδώνυμο του jQuery, οπότε μπορεί να διασφαλιστεί η λειτουργικότητα χωρίς να χρησιμοποιείται το $. Αν χρειαστούμε μια άλλη βιβλιοθήκη JavaScript εκτός του jQuery, μπορούμε να επιστρέψουμε τον έλεγχο με την κλήση του $.noConflict():
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); // Κώδικας χρήσης του $ μιας άλλης βιβλιοθήκης </script>
Μπορεί να συνδυαστεί με τη μέθοδο .ready() για να δώσει όνομα εναλλακτικής για το jQuery αντικείμενο, αυτή η τεχνική είναι πολύ αποτελεσματική:
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); jQuery(document).ready(function($) { // Κώδικας χρήσης του $ του jQuery }); // Κώδικας χρήσης του $ μιας άλλης βιβλιοθήκης </script>
Επιπλέον, με την παροχή του παραμέτρου true σε αυτήν τη μεθόδο, μπορούμε να επιστρέψουμε τον έλεγχο του $ και του jQuery στην αρχική βιβλιοθήκη. Προσέξτε καλά πριν χρησιμοποιήσετε!
Αυτή είναι μια πιο ακραία έκδοση σε σύγκριση με τη συνήθης μέθοδο noConflict, επειδή θα επαναπροσδιορίσει πλήρως το jQuery. Αυτό χρησιμοποιείται συνήθως σε εξαιρετικές περιπτώσεις, όπως όταν θέλεις να ενσωματώσεις το jQuery σε ένα περιβάλλον με πολλές συγκρούσεις. Σημείωση: Η κλήση αυτής της μεθόδου μπορεί να προκαλέσει την απενεργοποίηση πολλών plugin.
Επιδειγματα
Παράδειγμα 1
Καταγράφουμε το αντικείμενο που αναφέρεται από το $ πίσω στο αρχικό αντικείμενο:
jQuery.noConflict(); jQuery("div p").hide(); // Χρήση του jQuery $("content").style.display = "none"; // Χρήση του $() από άλλη βιβλιοθήκη
Παράδειγμα 2
Ανακτάμε τη χρήση του alias $, στη συνέχεια δημιουργούμε και εκτελούμε μια συνάρτηση, στην περιοχή που αυτή η συνάρτηση λειτουργεί, το $ παραμένει ως alias για το jQuery. Στην αυτή τη συνάρτηση, το αρχικό $ αντικείμενο είναι ανενεργό. Αυτή η συνάρτηση είναι πολύ αποτελεσματική για πολλούς εκπαιδευτικούς plugin που δεν εξαρτώνται από άλλες βιβλιοθήκες:
jQuery.noConflict(); (function($) { $(function() { // Χρήση του $ ως συνάρτησης alias για το jQuery }); )(jQuery); ... // Άλλος κώδικας άλλων βιβλιοθηκών που χρησιμοποιούν το $ ως συνάρτηση
Παράδειγμα 3
Μπορούμε να συνδυάσουμε το jQuery.noConflict() με τη σύντομη έκδοση ready για να κάνουμε τον κώδικα πιο συμπτυμένο:
jQuery.noConflict()(function() // Χρήση κώδικα του jQuery }); ... // Άλλος κώδικας άλλων βιβλιοθηκών που χρησιμοποιούν το $ ως συνάρτηση
Παράδειγμα 4
Δημιουργούμε μια νέα συνάρτηση για να χρησιμοποιούμε το jQuery αντικείμενο στη συνέχεια της βιβλιοθήκης:
var j = jQuery.noConflict(); j("div p").hide(); // Κώδικας με βάση το jQuery $("content").style.display = "none"; // Κώδικας με βάση άλλη βιβλιοθήκη $()
Παράδειγμα 5
Πλήρως μεταφέρουμε το jQuery σε μια νέα ονομαστική διάσταση:
var dom = {}; dom.query = jQuery.noConflict(true);
Τα αποτελέσματα:
dom.query("div p").hide(); // Νέα έκδοση του jQuery κώδικα $("content").style.display = "none"; // Άλλη βιβλιοθήκη $() κώδικας jQuery("div > p").hide(); // Άλλη έκδοση κώδικα του jQuery