Problème: ""null":Cannot convert undefined or null to object" [JS] - HTML/CSS - Programmation
Marsh Posté le 23-09-2009 à 21:27:41
fait voir ton code HTML
Est ce que tu as un element ayant une class="collapse_all" ?
Marsh Posté le 23-09-2009 à 21:36:03
Oui, voilà le code, du moins un extrait:
<div class="preview_tag"> |
En fait, j'utilise la classe collapse_all pour en faire une icone via le CSS, comme c'est dit dans le tutoriel en gros
EDIT: Ah et j'oubliais, le span collapse_all s'affiche correctement, exactement comme je m'y attendais, si ça peut aider.
Marsh Posté le 23-09-2009 à 22:16:08
Ben j'vois pas chez moi ça fonctionne
<div class="preview_tag"> |
J ai juste rajouter la derniere ligne
Est ce que tu fais bien l'import de la librairie jQuery ??
voila mon code de test
<head> |
Marsh Posté le 23-09-2009 à 22:28:03
Ouaip, jQuery est en place, mais moi par contre uploadée sur mon hébergement, et lien relatif là-bas.
La jQuery est bien importée, l'assistant débug Opera me dit que tout est OK.
De même pour le fichier .js qui contient mon code.
Je remet tout en place, et je te donne le lien.
http://qikon-se7en.frih.org/, vérifie dans le debugger js, probleme avec le fichier collapse.js
Marsh Posté le 23-09-2009 à 22:36:49
Je crois avoir trouvé le problème en bidouillant un peu.
En fait c'est inhérent à Wordpress, faut pas utiliser "$(document).ready(function(){" quand on utilise une lib jQuery autre que celle par défaut. Je teste un peu, si tout est OK je reviens
Lien de l'astuce: http://techxplorer.com/2008/02/25/ [...] wordpress/
EDIT: Effectivement, y'a plus le message d'erreur, mais bon ça marche toujours pas
Marsh Posté le 23-09-2009 à 22:47:27
Alors sur ton site j'ai l'impression le script sont appliqué aux mauvaises class
essaye ca
Code :
|
edit : d ailleurs il est ou ton bouton collapse_all
Marsh Posté le 23-09-2009 à 22:53:06
En fait, c'était une erreur de manipulation, revérifie, pour l'instant la fonction collapse_all je l'ignore, c'est sur collapse_me que je me focalise. Vérifie, ça devrait être reglé.
Le bouton collapse_me est l'icône de page, avec une fleche verte, à droite des left_preview.
Ce que j'essaie de slider est en fait le texte des articles, que l'on voit dans la source sous la classe left_tag_content, et on le voie en fond d'ailleurs, ça fait moche, sur la page normale. Le problème c'est que le clic ne cache rien du tout.
Merci de te tracasser pour moi
Marsh Posté le 23-09-2009 à 22:59:23
ha d'accord
donc tu n'utilises plus
$(document).ready(function(){ ...} |
pour moi le soucis viens de là, ton script collapse il n'est appliqué sur aucun élément là
fait ton import à la fin de ta page web et non plus dans le head
Marsh Posté le 23-09-2009 à 23:06:15
j'ai fait l'import dans le footer, maintenant l'erreur TypeError revient, comme au début.
Marsh Posté le 23-09-2009 à 23:15:50
C'est chose faite, mais, maintenant c'est une floppée d'autres messages d'erreur qui apparaissent, au sujet de prototype et d'autre libs, surement à cause du fait que j'ai enlevé le $(document).ready(function(); enfin je teste avec et sans, rapidement
EDIT: Nevermind, c'était une idée stupide
Aussi, Ilsemblerait que les js du footer ne sont pas chargés, pourtant le reste n'a aucun problème.. bizarre
Marsh Posté le 23-09-2009 à 23:22:29
bizarre , je ne vois pas pourquoi prototype a besoin de jquery ...
bon dernier test avant d etre a court d idee
fait l'import de collapse.js juste apres le span du 1er collapse_me
et voit si ça marche pour le premier collapse
Marsh Posté le 23-09-2009 à 23:28:53
Ben en fait c'est une boucle while, je sais pas controler les différents collapse_me, mais j'essaie.
EDIT: Rien, retour à la case départ. Bon beh j'arrête pour aujourd'hui alors, merci beaucoup de ton aide, jverrais demain Bonne nuit (En esperant qu'elle porte conseil)
Marsh Posté le 23-09-2009 à 23:55:17
$(document).ready(function(){ ...} |
permet d'executer du javascript quand la page HTML est chargé, tous les éléments (collapse_me) sont crée du coup le script
$(".collapse_me" ).click(function(){ |
applique sur chaque element ayant la class="collapse_me" attribut onclik qui cachera l'element "left_tag_content"
Probleme : tu ne peux pas utiliser (pas compris pourquoi d'ailleurs, la réponse est peut être du a wordpress , j ai la flemme de lire le lien que tu a donné)
$(document).ready(function(){ ...} |
tu fais l'import de collapse.js dans le head , le script est bien exécuter mais les éléments "collapse_me" n'existe pas encore
du coup le script s'execute dans le vent , et ne s'applique sur aucun élément
alors soit tu charges ton collapse.js juste apres la boucle while qui te genere les element "collapse_me"
soit tu vires totalement collapse_me , et dans ta boucle while qui te genère ton span tu rajoutes l'attribut onclick
<span class="collapse_me" onclick="$(this).parents(".preview_tag" ).next(".left_tag_content" ).slideToggle(700);"/> |
bonne chance
Marsh Posté le 23-09-2009 à 20:40:31
Bonjour (bonsoir plutôt) tout le monde, je suis les conversations de ce forum depuis trés longtemps, mais je n'ai jamais réellement eu besoin de participer, que ce soit pour demander de l'aide ou autre chose. Pour une fois, la fonction rechercher n'a servi à rien
Entrons plutôt dans le vif du sujet. Voilà, dans un blog Wordpress, j'essaie de faire un text qui apparaît quand on clique; avec pour base jQuery et ce tutorial (http://xcodetuts.com/javascript-aj [...] ng-jquery/)
Le tutorial est censé fonctionner, mais, ayant essayé de l'adapter en dehors de son utilisation normale (je l'utilise pour afficher le contenu des posts, et pas les commentaires), j'ai une lamentable erreur, qui me dit "null: cannot convert undefined or null to object" sur IE; et TypeError sur Opera. Si l'on se fie au numéro de caractère, c'est le $ dans cette ligne qui pose problème:
$(".collapse_me" ).click(function(){
N'étant à vrai dire pas un fana de JS (bah mon domaine c'est C/C++ Symbian OS); j'arrive vraiment pas à résoudre ce casse-tête. Et en plus, j'en suis au point de ne pas savoir à quoi ça sert, le $ en JS. Enfin voilà quoi, situation desesperée.
Voici le code entier du fichier collapse.js:
$(document).ready(function(){
$(".collapse_all" ).click(function(){
$(this).parents(".preview_tag" ).next(".left_tag_content" ).slideToggle(700);});
$(".collapse_me" ).click(function(){
$(".left_tag_content" ).slideToggle(700);});
} )
Merci, vraiment merci, pour tout conseil