J'ai créé une page WordPress personnalisée via plugin où je veux basculer les commentaires activés / désactivé à l'aide de ce code
<script type="text/javascript"> $("comment_switch").click(function () { $("comments").toggleClass("hidden"); }); </script>
3 Réponses :
Vous manquez probablement certains . code> balise de classe et la fonction
Oui, oui :-) Vous avez raison avec les deux problèmes. Je n'ai pas vérifié à 100% le code de Stackoverflow.com/a/3102240/250422 Je peux comprendre les points manquants Mais pourriez-vous expliquer pourquoi j'ai dû utiliser jQuery (fonction ($) code>? merci.
@Radek est probablement parce que WordPress utilise $. NOCONFLICT code> qui fait
$ code> pas égal à
jQuery code>. Vous pouvez probablement simplement simplement remplacer
$ code> avec
jQuery code> pour faire fonctionner votre code, en supposant qu'il soit immédiatement avant la balise de fermeture de fermeture. Le code de cette réponse permet de fonctionner car il utilise
jQuery code> à l'extérieur, puis accepter l'argument transduit (qui se trouve tout simplement être
jQuery code>) avec un nom de
$ code> que vous avez ensuite utilisé à l'intérieur de votre code.
@Radek ce que j'ai fait est: obtenez fenêtre.jQuery code> Attribuer comme argument de référence le
$ code>, de cette façon dans la fonction "code> $ code> est attribué à la fenêtre jQuery référence. C'est une manière à faible niveau que dans 90% des cas dignes du noconflic. Il vous empêche de taper plus encore
jQuery code> au lieu de la référence
$ code>.
@ Rokoc.buljan à droite, mais vous faites aussi plus que cela. Vous supposez que le code doit être à l'intérieur d'un document prêt, ce qui est incorrect dans ce cas en raison de l'emplacement du script. Tout le problème est $! == jQuery code>, que votre code résout en utilisant l'argument attribué à
jQuery (fonction (ici) {}) code>
@Radek c'est, à moins que $ .noconflic exerce soit utilisé, ce qui est très courant avec WordPress.
@Kevinb Bien sûr, la plupart des utilisateurs utilisant WP ont-ils été étonnés qu'ils pouvaient définir jQuery ($) { code> et fonctionnait dans tous les cas sans utilisation de NOCONF. Et
jQuery < / code> partout sur la place :)
Comment puis-je savoir si $. NOCONFLICT code> a été utilisé?
@Radek est $ code> équivalent à
jQuery code>? Sinon, alors c'est un bon choix qu'il est utilisé, c'est-à-dire que ou quelque chose est de remplacer
$ code>.
@Radek Vous pouvez toujours inspecter votre console pour les scripts code> code> utilisé dans votre page et trouver i> le match souhaité. En outre, ce n'est pas moyen (OK, 99,99%) qu'une autre bibliothèque est enregistrée à l'objet Window comme jQuery code>, à l'aide de l'appel d'objet
jQuery code> d'objet et référençant-le à l'intérieur de l'ARG fonction comme
$ code> vous laisse mains libres à go;) avec le plus cher alias.
Ok les gars, je n'ai aucune idée de ce que vous prenez. Il me semble trop profond pour moi. Pourriez-vous recommander une lecture pour moi? Merci à vous deux.
@Radek Lecture intéressante: Stackoverflow.com/questions / 4983150 / ...
Vous devez encapsuler votre javascript dans la fonction qui s'exécute sur Dom Ready Event
<script type="text/javascript"> $(function () { $("comment_switch").click(function () { $("comments").toggleClass("hidden"); }); }); </script>
$ n'est pas une fonction, mais vous l'appelez toujours.
@ user3502626 Je ne sais pas comment vous êtes capable de faire des instructions comme ça, $ code> est un raccourci vers jQuery et jQuery est une fonction, de sorte que
$ code>
J'ai testé votre code mais, il n'a pas fonctionné: $ (fonction () {...}) code> mais,
jQuery (fonction ($) {...}) code> travaillé. Les gens disent que $ est un alias de jQuery mais, l'alias n'a pas fonctionné.
C'est à cause de la manière dont vous avez peut-être configuré votre jQuery dans un paramètre NOCONFLICT code>. Ce n'est pas parce que vous ne comprenez pas les bases de la façon dont quelque chose fonctionne, vous ne pouvez pas faire le tour des réponses -1.
Ce n'est pas à propos de moi. Ceci est à propos de WordPress. Donc, comme vous l'avez dit, un utilisateur peut avoir configuré sa jQuery dans un paramètre NOCONFLICT B> de sorte que [peut-être] c'est le cas de WordPress. Donc, généralement, votre code donne la $ n'est pas une erreur i> dans WordPress.
<script type="text/javascript"> (function () { // 1) remove the "$" $(".comment_switch").click(function () { // 2) add "." if this a class or "#" // if it is an id $(".comments").toggleClass("hidden"); }); }); </script>
Veuillez ajouter une description de la solution que vous proposez.
corps code> ok mais corps i> au début (lorsque le DOM n'est toujours pas lu) ou avant
corporel> code>?
Avez-vous vérifié le chemin du fichier jQuery et vous êtes assuré qu'il est valide
Plus probablement, alors pas jQuery fonctionne en mode NOCONFLICT. essayez de remplacer jQuery pour $ pour confirmer