Touit du Dimanche 8 Janvier 2017 à 15:50:25

La flemme de virer jquery d'un projet legacy te permet de te prendre la tête sur des trucs bien cons...
Un exemple vécu à l'instant: attacher un événement à un input, pas de soucis... sauf si on crée l'input après le chargement du js, auquel cas il faut utiliser .on()... oui, mais des fois ça marche pas parce qu'on sait pas pourquoi ! Il faut alors passer par un

$(document).on('click','.moy input[type=number]',function(){

du plus moche effet...


Donc, en résumé, on suit les étapes suivantes:

1- $('.moy input[type=number]').click(
2- $('.moy input[type=number]').on('click',function(){
3- $(document).on('click','.moy input[type=number]',function(){




Développeurs de Jquery, allez dans la paix du seigneur

❝ 2 commentaires ❞

1  Jack NUMBER le

Pas obligé de taper sur `document` tu peux prendre un parent qui était déjà là au chargement :)

Oui c'est moche, mais en c'est logique : jQuery n'a pas connaissance de quelque chose qui est apparu après son indexation de la page. C'est une question de perf car sinon il serait constamment en train de re-parser le DOM (ce que fait Angular ou React).

 
2  Bronco le

C'est logique, en effet... toutefois, .on est là pour ça normalement et du coup, la seconde syntaxe est quand même étrange...

 

Fil RSS des commentaires de cet article

✍ Écrire un commentaire

Quelle est la dernière lettre du mot bcla ?