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 avantcorporel> 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