jQuery .prop() compatibilité
Je suis en train de tester si la .prop()
méthode existe sur le courant jQuery inclus (pour la compatibilité raison) via:
if(typeof $.prop === 'function')
Je m'attends à ce que la condition ci-dessus est true
pour jQuery >= 1.6
et false
pour jQuery < 1.6
que je peux comprendre de la docs
De toute façon, le test de ce sur jsfiddle, conduit à:
typeof $.prop === 'function'
est:
true
quandjQuery >= 1.6
false
quandjQuery < 1.6 and jQuery > 1.3
true
quandjQuery <= 1.3
ici est très très simple script qui fournissent les résultats ci-dessus (il suffit de passer la version jQuery pour voir ce que j'ai décrit).
Quand j'essaie d'utiliser les .prop()
avec jQuery c'est à dire de 1,3-je obtenir le .prop is not a function
erreur.
Le même problème occours également un contrôle en dehors de jsfiddle.
Est-il normal un tel comportement?
Comment j'ai pu vraiment tester si .prop()
est disponible?
Grâce
- j'ai fait le test sur FF4, Safari5 et Chrome12
- désolé mal compris
- Pourquoi soutenir 1.3. Il est vraiment vieux.
Vous devez vous connecter pour publier un commentaire.
alert(typeof $.fn.prop === 'function')
Vous voulez vérifier la
.prop
méthode sur le jQuery, prototype, qui vit sur$.fn
. Ce qui est faux dans 1.3.Aussi je voudrais éviter la détection de fonctionnalité pour les versions de jQuery et au lieu de soutenir une version particulière (et plus).
Ce que j'ai fait, c'est créer une fonction compatible pour prop, pour les versions de jQuery, qui permet de ne pas utiliser prop:
Vous pouvez tester ce code: http://jsfiddle.net/JtK2Q
Vous êtes à la vérification de l'existence d'un statique méthode.
Vous avez besoin de vérifier pour la méthode d'instance par écrit
$.fn.prop
($.fn
est le même que$.prototype
).$.fn.init.prototype