11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'aimerais avoir votre avis sur la compatibilité des bibliothèques jQuery, j'ai en effet remarqué certains bugs avec les dernières bibliothèques.

Selon moi, la stabilité des bibliothèques jQuery s'arrête à la version 1.4.4 (je remarque que le site Alsa s'arrête à la version 1.3.2, bibliothèque qui lui sert notamment pour faire fonctionner les petites icônes en haut à gauche, icônes non dynamiques sur les pages du forum d'ailleurs...).

Exemple : avec la version 1.5.1 j'ai un bug sur les mouvements dynamiques d'un élément, quand à la version 1.6.1 elle souffre d'un bug d'affichage avec Opéra au niveau du body (un cadre blanc entoure le fond du site).

Voilà pour un retour, si vous avez constaté d'autres bugs avec certaines versions je suis intéressé, y compris avec d'autres bibliothèques (à cause de ces bugs je me pose la question de passer sur Mootools).
Es-tu certains que ces bugs soient dû à la bibliothèque et non pas à ton utilisation de celle-ci ?

Personnellement, je travaille quotidiennement avec jQuery et tout se passe généralement bien. (Mais je ne travaille presque pas avec Opéra - que sur les projets mobiles)


Et d'ailleurs, j'ai lu aujourd'hui que les développeurs de jQuery mobile n'assureront pas le support des versions de jQuery inférieur à la version 1.6 qui est plus stable selon eux.
Et bien il m'a suffit de supprimer les bibliothèques 1.6.1 ou 1.5.1 pour les remplacer par la 1.4.4 pour résoudre ces problèmes de compatibilité. Quand au code utilisé, il est issu de tutos on ne peut plus officiel sur le site jquery lui-même (les icônes "dynamiques" telle qu'on les trouve en haut du site alsacreations par exemple).

D'ailleurs, avant de supprimer la bibliothèque jQuery qui est dans mon footer (quand j'étais partit à la "chasse du bug"), j'avais d'abord supprimé tout le reste, sauf la structure des div bien sûr.

Je précise que je suis sous Mac, donc peut-être que le développement se concentre sur les navigateurs PC, vérifiant une compatibilité sous "Opéra PC" par exemple, et de manière moins rigoureuse sous "Opéra Mac".

Quand au navigateurs eux-même, je me suis souvent rendu compte d'une différence de rendu pour un même navigateur sur des OS différents, souvent minime il est vrai...
Olivier C a écrit :
Et bien il m'a suffit de supprimer les bibliothèques 1.6.1 ou 1.5.1 pour les remplacer par la 1.4.4 pour résoudre ces problèmes de compatibilité. Quand au code utilisé, il est issu de tutos on ne peut plus officiel sur le site jquery lui-même (les icônes "dynamiques" telle qu'on les trouve en haut du site alsacreations par exemple).

D'ailleurs, avant de supprimer la bibliothèque jQuery qui est dans mon footer (quand j'étais partit à la "chasse du bug"), j'avais d'abord supprimé tout le reste, sauf la structure des div bien sûr.

Je précise que je suis sous Mac, donc peut-être que le développement se concentre sur les navigateurs PC, vérifiant une compatibilité sous "Opéra PC" par exemple, et de manière moins rigoureuse sous "Opéra Mac".

Quand au navigateurs eux-même, je me suis souvent rendu compte d'une différence de rendu pour un même navigateur sur des OS différents, souvent minime il est vrai...


Je débute aussi sur JQuery et je rencontre une anomalie suite à un code livré sur un livre bien noté sur le sujet et utilisant jquery 1.3.2

$(document).ready(function() {
$('a[href^=mailto:]').addClass('mailto');
...
});

Le code doit appliquer une classe contenant des imagettes, etc.

Erreur : uncaught exception: Syntax error, unrecognized expression: [href^=mailto:]

Pas OK avec jquery-1.5.2.min.js / jquery-1.6.1.min.js (mise en page incomplète)
OK avec jquery-1.3.2.min.js / jquery-1.4.4.min.js (mise en page complète)

Tous les fichiers sont dans le même dossier, je me contente donc de renommer le fichier jquery-1.x.x.min.js puis relancer la page.
Il reste à savoir d'où vient l'incompatibilité.

cdlt;
mctarek a écrit :


Je débute aussi sur JQuery et je rencontre une anomalie suite à un code livré sur un livre bien noté sur le sujet et utilisant jquery 1.3.2

$(document).ready(function() {
$('a[href^=mailto:]').addClass('mailto');
...
});

Le code doit appliquer une classe contenant des imagettes, etc.

Erreur : uncaught exception: Syntax error, unrecognized expression: [href^=mailto:]

Pas OK avec jquery-1.5.2.min.js / jquery-1.6.1.min.js (mise en page incomplète)
OK avec jquery-1.3.2.min.js / jquery-1.4.4.min.js (mise en page complète)

Tous les fichiers sont dans le même dossier, je me contente donc de renommer le fichier jquery-1.x.x.min.js puis relancer la page.
Il reste à savoir d'où vient l'incompatibilité.

cdlt;


Normal, ton code est faux. Comme expliqué dans la doc officielle, dans le chapitre sur les sélecteurs :

http://api.jquery.com/category/selectors/


Attribute Starts With Selector [name^="value"]


Tu dois mettre des guillemets doubles autour de la valeur.
Comme ça :


$(document).ready(function() {
  $('a[href^="mailto:"]').addClass('mailto');
});

Modifié par jb_gfx (28 Jun 2011 - 13:19)
jb_gfx a écrit :


Normal, ton code est faux. Comme expliqué dans la doc officielle, dans le chapitre sur les sélecteurs :

http://api.jquery.com/category/selectors/


Attribute Starts With Selector [name^="value"]


Tu dois mettre des guillemets doubles autour de la valeur.
Comme ça :


$(document).ready(function() {
  $('a[href^="mailto:"]').addClass('mailto');
});


Merci pour cette réponse rapide. Le code du livre ne tient pas compte
des doubles guillemets et cela fonctionne jusqu'à jquery-1.4.4.min.js.
Je vais devoir donc m'adapter à l'évolution du language...
A+
Olivier C a écrit :
Up ?
...........


Sans code, sans page d'exemple en ligne, comment veux-tu qu'on t'aide ?

En ce qui me concerne j'utilise toujours la dernière version de jQuery sur mes sites et je n'ai jamais de problèmes. Il peut arriver qu'une convention change d'une version à une autre mais dans ce cas c'est expliqué dans les notes de versions et il suffit de mettre ses scripts à jour (donc ça n'a rien à voir avec un bug, ce sont de simples évolutions du framework).

Au passage : c'est pareil en PHP et HTML... de nombreux langages de programmation ou frameworks.
Modifié par jb_gfx (28 Jun 2011 - 15:36)
Bonjour,

J'ai rencontré un bug du même genre avec jQuery 1.6.1 mais avec iE8.

Il semblerait que le problème soi connu... D'ailleurs je donne quelques liens sur le sujet dans mon post ici à la toute fin.

Il suffit de faire quelques recherche sur Google pour constater que le problème revient souvent.
jb_gfx a écrit :
Sans code, sans page d'exemple en ligne, comment veux-tu qu'on t'aide ?

Bonjour,

Pour le bug de la bibliothèque 1.4.4 avec l'icône dynamique... ce bug ne jouait que sur cette bibliothèque, donc...

Quand à l'autre bug : je ne parlais pas d'un problème lié à l'application d'un script, je reportais un bug de la bibliothèque "nue". Je veux dire par là que le simple fait de la déclarer dans une page (chez moi : dans le footer, avant la balise body) suffisait à créer un bug.

Enfin, c'est de l'histoire ancienne : les bugs décrits ont tous disparus avec la dernière version (1.6.2).

En tout cas ce genre de mésaventures et le témoignage de mctarek sur les guillemets me conforte dans l'idée de ne pas appeler la bibliothèque mise à jour automatiquement à partir des serveurs de Google :

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js

Ou alors il faut appeler une version en particulier :

http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js

... mais je ne suis pas fan de ces pratiques.

Merci encore à juliesunset pour son retour sur la version 1.6.1 qui a confirmé mes doutes à ce sujet.
Modifié par Olivier C (05 Jul 2011 - 08:21)
Et voilà : le plugin jquery "hoverIntent" dans sa dernière version r6 n'est pas compatible avec la version 1.6.2 de jquery (misère). Ce plugin permet notamment de fabriquer des menus géants comme ici. Donc, en ce qui me concerne, retour à la version 1.4.4 ...