Votre question

[js]problèmes avec jquery

Tags :
  • Ajax
  • Programmation
Dernière réponse : dans Programmation
27 Mars 2007 08:13:59

Bonjour, j'utilise la librairie jquery pour développer mon site, mais je rencontre quelque problèmes.

1. Les caractères spéciaux et ajax

Quand je récupère du texte via ajax et que je l'affiche sur ma page, les caractères spéciaux (é, è, à, etc.) ne s'affiche pas. A la place j'ai un horible point d'interrogation.

2.Action sur le code modifié

Il me semble que jquery ne peux gerer le xhtml qui a été modifié (même s'il l'a lui-même modifié).
Je m'explique : si j'ajoute une classe à un élément, impossible après d'appeler une fonction en fonction de cette nouvelle classe. exemple :
  1. $(".block_lien").mouseover(function()
  2. {
  3. $(this).removeClass('block_lien');
  4. $(this).addClass('block_lien_active');
  5. });
  6.  
  7. $(".block_lien_active").mouseout(function()
  8. {
  9. $(this).removeClass('block_lien_active');
  10. $(this).addClass('block_lien');
  11. });


La 2e fonction ne sera jamais appelée.
Pas moyen non plus d'intervenir sur du xhtml qui a été ajouter via ajax.
Ces 2 problèmes m'empechent de de profiter de cette librairie qui est pourtant si utile. J'espère que je trouverai réponse à mes questions.

Autres pages sur : problemes jquery

22 Avril 2007 21:47:14

up
23 Avril 2007 00:01:53

Je ne connais pas trop JQuery. Cependant...

Pour ton premier problème, il s'agit simplement d'un problème d'encodage. Essaye de mettre un petit utf8_encode pour toutes les sorties PHP.

Pour ton second problème, je n'ai pas compris ce que tu veux faire... Par contre, les dollars en début de ligne sont normaux ? Ca ressemble à un bizarre mélange de JS et de PHP là...
Contenus similaires
24 Avril 2007 22:33:29

Merci, le premier problème est résolu. (en ce qui concerne les $, c'est en fait le nom de la fonction principale de jquery)

Mais le second est bien plus gênant : je ne peux agir (via jquery) sur du code xhtml qui a été modifié après le chargement de la page. Par exemple, si j'ai un bloc <p></p>, je peux inserer une image dedans, jusque là pas de problème. Mais cette image, si elle est bien visible, semble ne pas exister pour jquery! Je ne peux ni la supprimer, ni la modifier, ni savoir si l'on clique dessus. Et c'est pareil avec tous les autres éléments rajouté après le chargement de la page.
25 Avril 2007 00:00:48

Ne serait-ce pas lié à un problème d'évaluation de Javascript ? Voici une petite fonction qui te sera forte utile :

  1. // Fonction d'évaluation de nos scripts issus des requêtes Ajax.
  2. function evalJavascript(div)
  3. {
  4. var scripts = div.getElementsByTagName('script');
  5.  
  6. for(i=0 ; i < scripts.length ; i++)
  7. {
  8. var s = scripts[i];
  9. eval(s.innerHTML);
  10. }
  11. }


Demande l'évaluation après l'appel à ta fonction Ajax.

En espérant avoir bien compris ce que tu demandais...
25 Avril 2007 19:48:50

Je ne suis pas sur d'avoir bien compris le code que tu me proposes; Il sert à executer le code javascript se trouvant dans un div donné c'est ça?

En fait le problème n'est pas qu'il ne peut executer du code après un appel ajax, enfin pas exactement.

Voila comment semble fonctionner jquery :
Une fois que la page est chargée, je peux via jquery modifier le xhtml qui a été chargé. Je peux ajouter un bloc, savoir quand on clique sur un lien, ajouter ou supprimer des classes, ou même faire un requête ajax. Mais je ne peux le faire que pour les éléments qui ont été chargés aux départ. Tous les éléments que j'ai rajouté ensuite, que se soit via jquery ou suite à une requete ajax, je ne peux les modifier. Jquery ne les reconnais pas.

Par contre, si dans le code que j'ajoute via une requete ajax, il y a du code jquery, ce code là pourra agir sur tous les éléments qui sont présent à ce moment la sur la page. Mais de nouveau pas sur ce que je pourrais rajouter après.
25 Avril 2007 19:54:33

Oulà... Ca m'a l'air bien particulier tout ça... Là, franchement, je ne vois pas trop comment faire... Désolé. Peut-être qu'un autre IDNaute pourra te répondre, mais là, je ne vois psa trop.

Bon courage !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS