Comment faire pour implémenter JQuery.noConflict() ?
Je suis à l'aide de javascript et jquery code sur la même page html. Pour une raison quelconque, la librairie jQuery est d'arrêter d'origine de mon code javascript de fonctionner correctement.
J'ai trouvé cette page: Pas de Conflit jQuery qui dit que vous pouvez utiliser jquery.noConflict pour libérer $ retour de javascript. Cependant, je ne suis pas sûr de savoir comment le faire?
Plus précisément, je ne suis pas sûr de la façon de mettre en œuvre correctement? D'où vient le Jquery code, d'où le code JS aller?
Mon code est ci-dessous:
<script type="text/javascript">
$.noConflict();
//Code that uses other library's $ can follow here.
</script>
- double possible de vous ne savez pas comment mettre en œuvre le noConflict() code
Vous devez vous connecter pour publier un commentaire.
jQuery.noConflict
permet de réinitialiser le$
variable donc il n'est plus un alias dejQuery
. En dehors de l'appeler une fois, il n'y a pas grand-chose que vous devez vraiment faire. Cependant, vous pouvez créer vos propres alias avec la valeur de retour, si vous le souhaitez:Et, en général, vous voulez faire de ce droit, à la suite notamment de jQuery et tous les plugins:
Vous pouvez aussi aller plus loin et libérer
jQuery
avecnoConflict(true)
. Cependant, si vous prenez cette route, vous aurez certainement envie d'un alias comme ni$
nijQuery
sera probablement ce que vous voulez:Je pense que cette dernière option est principalement utilisée pour le mélange de versions de jQuery, en particulier pour les hors-daté plugins lorsque vous souhaitez mettre à jour de jQuery:
Par défaut, jquery utilise la variable
jQuery
et le $ qui est utilisé pour votre commodité. Si vous voulez éviter les conflits, un bon moyen est d'encapsuler jQuery comme suit:Si je ne me trompe pas:
ensuite, vous pouvez appeler fonction jquery avec jq.(quoi que).
Il permet de vous donner le jQuery variable un nom différent, et toujours l'utiliser:
Il est généralement utilisé si vous utilisez une autre bibliothèque qui utilise
$
.Afin de toujours utiliser le
$
symbole de jQuery, j'utilise généralement:Si vous regardez les exemples sur l'api de page, il y a ceci:
Exemple: Crée un alias différent au lieu de jQuery pour utiliser dans le reste du script.
Mettre le
var j = jQuery.noConflict()
une fois que vous mettez en jquery et puis de le mettre dans le conflit des scripts. Vous pouvez ensuite utiliser laj
en place de$
pour tous vos jquery besoins et d'utiliser les$
pour l'autre script.J'ai corrigé cette erreur en ajoutant ce conflit code
après mon jQuery et js fichiers et de récupérer le fichier a été l'erreur (trouvé par la console du navigateur) et remplacer tous les '$' par jQuery suivant ce sur toutes les erreurs js fichiers dans mon site Magento. Il travaille pour moi bon.
Trouver plus de détails sur mon blog ici
En outre que, en passant vrai de $.noConflict(vrai); également restaurer précédent (le cas échéant) de la variable globale jQuery, ainsi que les plugins peuvent être initialisés avec la bonne version jQuery lorsque plusieurs versions sont utilisées.
Il vous suffit d'affecter une variable personnalisée pour JQuery pour utiliser à la place de son défaut
$
. JQuery, elle s'enroule dans une nouvelle portée de la fonction, de sorte$
n'a plus un espace de conflit.Le noConflict() la méthode des communiqués de l' $ raccourci identifiant, ainsi que d'autres scripts pouvez l'utiliser pour la prochaine fois.
Par défaut de jquery $ comme:
Ou personnalisés:
Vous pouvez le faire comme ceci:
Aujourd'hui, j'ai ce problème parce que j'ai mis en œuvre", "bootstrap " menu" qui utilise une version jQuery avec "fancybox galerie d'images". Bien sûr, un plugin fonctionne et l'autre pas en raison de conflits jQuery mais j'ai vaincu comme suit:
D'abord, j'ai ajouté le "bootstrap menu" Js dans le script de pied de page que le menu est présenté allover les pages du site:
Et dans le "fancybox" galerie d'images de page comme suit:
Et la bonne chose est à la fois le travail comme un charme 🙂
Essayer 🙂