Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
938 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Problème: ""null":Cannot convert undefined or null to object"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] Problème: ""null":Cannot convert undefined or null to object"

n°1926235
jeanclod
Posté le 23-09-2009 à 20:40:31  profilanswer
 

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   :lol:  
 
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.  :cry:  
 
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  :p

mood
Publicité
Posté le 23-09-2009 à 20:40:31  profilanswer
 

n°1926242
Lenoiche
Posté le 23-09-2009 à 21:27:41  profilanswer
 

fait voir ton code HTML
 
Est ce que tu as un element ayant une class="collapse_all" ?

n°1926243
jeanclod
Posté le 23-09-2009 à 21:36:03  profilanswer
 

Oui, voilà le code, du moins un extrait:
 

<div class="preview_tag">
<div class="left_tag_txt">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<span class="collapse_all"></span> // <--- c'est ici le collapse_all
</div>
</div>


 
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  :D
 
EDIT: Ah et j'oubliais, le span collapse_all s'affiche correctement, exactement comme je m'y attendais, si ça peut aider.


Message édité par jeanclod le 23-09-2009 à 21:37:26
n°1926247
Lenoiche
Posté le 23-09-2009 à 22:16:08  profilanswer
 

Ben j'vois pas chez moi ça fonctionne
 

<div class="preview_tag">
<div class="left_tag_txt">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<span class="collapse_all"></span> // <--- c'est ici le collapse_all
</div>
</div>
 
<div class="left_tag_content> mon contenu</div>


 
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>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
 
<script type="text/javascript">
$(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);});
} )
 
</script>
</head>
 
<div class="preview_tag">
 <div class="left_tag_txt">
  <a href="#">coucou</a>
  <span class="collapse_all">grrrrrrr</span>  
 </div>
 
</div>
 
<div class="left_tag_content> mon contenu</div>


Message édité par Lenoiche le 23-09-2009 à 22:21:11
n°1926250
jeanclod
Posté le 23-09-2009 à 22:28:03  profilanswer
 

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


Message édité par jeanclod le 23-09-2009 à 22:30:55
n°1926253
jeanclod
Posté le 23-09-2009 à 22:36:49  profilanswer
 

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  :cry:


Message édité par jeanclod le 23-09-2009 à 22:40:52
n°1926256
Lenoiche
Posté le 23-09-2009 à 22:47:27  profilanswer
 

Alors sur ton site j'ai l'impression le script sont appliqué aux mauvaises class
 
essaye ca

Code :
  1. $(document).ready(function(){ 
  2. $(".collapse_me" ).click(function(){ 
  3. $(this).parents(".preview_tag" ).next(".left_tag_content" ).slideToggle(700);}); 
  4. $(".collapse_all" ).click(function(){ 
  5. $(".left_tag_content" ).slideToggle(700);});
  6. } )


 
edit : d ailleurs il est ou ton bouton collapse_all


Message édité par Lenoiche le 23-09-2009 à 22:48:40
n°1926257
jeanclod
Posté le 23-09-2009 à 22:53:06  profilanswer
 

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  :jap:

n°1926261
Lenoiche
Posté le 23-09-2009 à 22:59:23  profilanswer
 

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
 

n°1926265
jeanclod
Posté le 23-09-2009 à 23:06:15  profilanswer
 

j'ai fait l'import dans le footer, maintenant l'erreur TypeError revient, comme au début.

mood
Publicité
Posté le 23-09-2009 à 23:06:15  profilanswer
 

n°1926268
Lenoiche
Posté le 23-09-2009 à 23:10:19  profilanswer
 

essaye de faire l'import de jQuery juste avant

n°1926270
jeanclod
Posté le 23-09-2009 à 23:15:50  profilanswer
 

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   :whistle:  
 
Aussi, Ilsemblerait que les js du footer ne sont pas chargés, pourtant le reste n'a aucun problème.. bizarre


Message édité par jeanclod le 23-09-2009 à 23:21:38
n°1926273
Lenoiche
Posté le 23-09-2009 à 23:22:29  profilanswer
 

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

n°1926275
jeanclod
Posté le 23-09-2009 à 23:28:53  profilanswer
 

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 :P Bonne nuit (En esperant qu'elle porte conseil)

n°1926281
Lenoiche
Posté le 23-09-2009 à 23:55:17  profilanswer
 

$(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(){  
$(this).parents(".preview_tag" ).next(".left_tag_content" ).slideToggle(700);});


 
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
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Problème: ""null":Cannot convert undefined or null to object"

 

Sujets relatifs
Problème accès fichier ....Problème avec onSoundComplete
[Js et PHP] Récuperer contenu d'un champs texte sans refreshProblème WPF / Entity Framework / Data Binding
Problème image en FPDFproblème pour écrire un programme
problème newsletter[Resolu]Problème formulaire
Problème de classeProblème erreur 404
Plus de sujets relatifs à : [JS] Problème: ""null":Cannot convert undefined or null to object"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR