Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Débat : Quelles sont les évolutions et les incompatibilités de jQuery 1.3

Le , par hansaplast

20PARTAGES

0  0 
Bonjour,

je vient de constater que jquery 1.3 vient de sortir.

avez vous put le tester?
avez vous rencontrés des incompatibilités avec les scripts basés sur la version 1.2.x?

et, enfin, quels ajouts au final?

a noter : la nouvelle doc : http://api.jquery.com/

page officiel sur ces changements : http://docs.jquery.com/Release:jQuery_1.3

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Lideln75
Membre régulier https://www.developpez.com
Le 19/01/2009 à 2:13
Je l'ai essayé, et j'ai un bug au niveau du sélecteur ">".
Donc je suis repassé à la 1.2.6 en attendant de trouver un fix pour ce bug.
Les chiffres annoncés en terme de performance pour la 1.3 sont impressionnants (par rapport à la 1.2.6 déjà, et aussi par rapport à toutes les autres lib).
0  0 
Avatar de Herode
Membre éprouvé https://www.developpez.com
Le 19/01/2009 à 11:43
Ha, superbe !

Je vais tout de même attendre la 1.3.1 pour essayer ça en production.

Quelqu'un peut-il éclairer ma lanterne sur ce qu'est la "event delegation" par opposition, je suppose, au "event handling" ?
0  0 
Avatar de yotsumi
Membre actif https://www.developpez.com
Le 21/01/2009 à 9:19
Pour moi l'une des principale nouveauté est l'évènement live.

En effet, jusqu'à aujourd'hui lorsque vous définissiez une règle au document.ready, celle-ci s'appliquait sur les éléments du DOM qui existaient à ce moment là, mais si vous rajoutiez des éléments (ajax ou autres), la règle ne s'appliquait pas sur les nouveaux éléments.
Il fallait alors recréer les règles aprés chaque modification du DOM, pas très pratique.

Maintenant, c'est très simple :

Code : Sélectionner tout
1
2
3
   $("p").live("click", function(){
      $(this).after("<p>Another paragraph!</p>");
    });

Vous avez aussi maintenant la possibilité de propager un évènement, via les trigger.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
    $("button:first").click(function () {
      update($("span:first"));
    });
    $("button:last").click(function () {
      $("button:first").trigger('click'); // Lance le click de bouton:first

      update($("span:last"));
    });
Accessoirement, vous pouvez créer des éléments du DOM grâce à une syntaxe simplifiée :
Code : Sélectionner tout
$("<script/>") =  $(document.createElement("script"))
Sinon, cette version 1.3 est surtout une amélioration technique permettant un gain de rapidité ( là où jquery était déjà bien en avance sur les autres .)
0  0 
Avatar de surfeurX
Membre à l'essai https://www.developpez.com
Le 21/01/2009 à 10:00
Bonjour, la version 3 implemente aussi Sizzle qui est une librairie CSS3 très rapide "http://jamesdonaghue.com/static/peppy/profile/slickspeed/"et d'après ce que j'ai lu sur un article toutes les librairie vont suivre l'exemple du jquery "dojo, prototype ..." par consequent "peppy" qui est aussi une librairie très rapide, elle suppose que le page est static ce qui la rend incomplete.
Bon developpement
0  0 
Avatar de SQUAL
Membre habitué https://www.developpez.com
Le 22/01/2009 à 11:59
Citation Envoyé par yotsumi Voir le message
Pour moi l'une des principale nouveauté est l'évènement live.

En effet, jusqu'à aujourd'hui lorsque vous définissiez une règle au document.ready, celle-ci s'appliquait sur les éléments du DOM qui existaient à ce moment là, mais si vous rajoutiez des éléments (ajax ou autres), la règle ne s'appliquait pas sur les nouveaux éléments.
Il fallait alors recréer les règles aprés chaque modification du DOM, pas très pratique.

Maintenant, c'est très simple :

Code : Sélectionner tout
1
2
3
   $("p").live("click", function(){
      $(this).after("<p>Another paragraph!</p>");
    });
Dans la doc :
Code : Sélectionner tout
1
2
.live doesn't support the no-event style callback that liveQuery provides. Only event handlers can be bound with .live.
Au final on doit encore utiliser le plugin liveQuery ? non ?
0  0 
Avatar de yotsumi
Membre actif https://www.developpez.com
Le 22/01/2009 à 12:15
Je pense que ta phrase est explicitée par cette quote de l'API :

Possible event values: click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup
Currently not supported: blur, focus, mouseenter, mouseleave, change, submit
Donc tout dépend de ce que tu désire écouter comme élément live !
0  0 
Avatar de SQUAL
Membre habitué https://www.developpez.com
Le 22/01/2009 à 12:21
Citation Envoyé par yotsumi Voir le message
Je pense que cette phrase est explicité par cette quote de l'API :

Donc tout dépend de ce que tu désire écouter comme élément live !
Bah un exemple :
Code : Sélectionner tout
1
2
$('input').spinButton();
Avec un load('page.html');, $('input').spinButton(); ne sera pas appliqué sur la page chargé. Ca ne requiert aucun evenement non ?
0  0 
Avatar de yotsumi
Membre actif https://www.developpez.com
Le 22/01/2009 à 13:24
Citation Envoyé par SQUAL Voir le message
Bah un exemple :
Code : Sélectionner tout
1
2
$('input').spinButton();
Avec un load('page.html');, $('input').spinButton(); ne sera pas appliqué sur la page chargé. Ca ne requiert aucun evenement non ?
Effectivement, tu as raison.

Si on veut lancer une fonction sur un élément, par exemple mettre en corner certains div $(".corner".corner(); ou encore $("a.light".lightbox(), on ne pourra pas le faire avec cette version de .live

Domage Il ne nous reste plus qu'à espérer que cette fonction soit améliorée dans les versions futures, en attendant liveQuery aura toujours son intéret !
0  0 
Avatar de JeitEmgie
Membre expert https://www.developpez.com
Le 04/02/2009 à 14:03
conclusion de quelques tests de la 1.3.1 :

encore trop de problèmes dans le selector…

…inutilisable en production…

(exemple :
plusieurs groupes de radio dans un form :
Code : Sélectionner tout
1
2
$("input[@name='NAME_OF_RAGIO_GROUP']:checked").val()
renverra toujours la valeur du radio sélectionné du PREMIER groupe…
quelque soit la valeur de NAME_OF_RAGIO_GROUP…
)
0  0 
Avatar de gtraxx
Membre confirmé https://www.developpez.com
Le 11/02/2009 à 10:50
Cette syntaxe n'est plus valide, logique que sa déconne :

Code : Sélectionner tout
$("input[@name='NAME_OF_RAGIO_GROUP']:checked").val()
On utilise plus le "@"
0  0