Il existe une méthode data dans jq, qui lie les données pertinentes aux éléments DOM. Lorsqu'un événement est lié au dom à l'aide de la méthode jq, une liste de temps correspondante sera générée
Vous pouvez voir l'exemple suivant (veuillez le consulter dans Firefox car les objets dans Firefox prennent en charge toSource())
win.each = function( objet, rappel, args ) {
nom du var, i = 0, longueur = objet.longueur ;
si ( arguments ) {
if ( longueur === non défini ) {
pour (nom dans l'objet)
if ( callback.apply( object[ name ], args ) === false )
casser;
} autre
pour ( ; i < longueur; )
if ( callback.apply( object[ i ], args ) === false )
casser;
} autre {
if ( longueur === non défini ) {
pour (nom dans l'objet)
if ( callback.call( object[ name ], name, object[ name ] ) === false )
casser;
} autre
pour ( var valeur = objet[0];
je &Lt ; longueur && callback.call( valeur, i, valeur ) !== false; valeur = objet[ i] ){}
}
renvoyer l'objet ;
>
Dans jq se trouve la méthode add dans jQuery.event
Certaines fonctions sont implémentées dans la méthode add
Récupérez les événements de l'élément et gérez les données liées à ces deux données
events stocke une liste d’événements
Le format est le suivant
{
cliquez : [{handler:function(){},type :"click",guid:'xx'}.....],
souris : [...]
>
handle est la fonction exécutée
(Toutes les fonctions d'exécution sont les mêmes. Elles parcourent la liste des événements et exécutent l'événement correspondant)
Parcourez ensuite les types car plusieurs événements peuvent être liés
La fonction de rappel donnera également plusieurs attributs
Supposons que la fonction de rappel soit handler
handler.guid = gevent.guid
handler.type = nom
le nom doit être considéré comme un nom spécial pour une suppression facile
Par exemple
$('#xx')
.bind('clic',function(){})
.bind('click.d',handler)
Le nom est d
Lors de la suppression, vous ne pouvez supprimer que l'événement d sans supprimer l'événement click ci-dessus
Finalement, l'événement est lié à l'élément, mais les fonctions exécutées le sont toutes
fonction(){
gevent.handle.apply(arguments.callee.elem, arguments);
});
以上内容只是自己的一些理解,水平有限,难免有错,望指正...