La méthode on( events [, selector ] [, data ], handler ) permet d'attacher une fonction gestionnaire d'événements à un ou plusieurs événements qui se produiront sur l'élément qui l'appelle.
Les paramètres
- events : chaîne de caractères : blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error...
- selector : un sélecteur css qui cherchera à partir de l'élément du DOM appelant (optionnel)
- data : données à passer en paramètre à la fonction quand un événement est déclenché (optionnel)
- handler : fonction à exécuter quand l'événement est déclenché.
Exemple sans sélecteur ni données :
jQuery(function($){
const form = $("<form></form>",{
id: "form",
class: "form"
}).appendTo("body");
const go = $("<button></button>",{
text: "GO !",
id: "go",
class: "button"
}).appendTo("form");
//gestion des événements
go.on("click",function(e){
console.log("click sur bouton go");
e.preventDefault();
})
});
Exemple avec sélecteur et données :
jQuery(function($){
for(let i=0; i< 10;i++) {
$("<button></button>",{
text: i,
id: "button" + (i),
class: "button"
}).appendTo("body");
}
for(let i=0; i< 10;i++) {
$("body").on("click","#button" + i, {value: "bouton" + i},function( event ){
console.log(event.data.value);
});
}
});