In jq gibt es eine Datenmethode, die relevante Daten an DOM-Elemente bindet. Wenn ein Ereignis mithilfe der jq-Methode an den Dom gebunden wird, wird eine entsprechende Zeitliste generiert
Sie können das folgende Beispiel sehen (bitte sehen Sie es sich in Firefox an, da Objekte in Firefox toSource() unterstützen)
win.each = function( object, callback, args ) {
Variablenname, i = 0, Länge = object.length;
if ( args ) {
if ( length === undefiniert ) {
für (Name im Objekt)
if ( callback.apply( object[ name ], args ) === false )
brechen;
} sonst
für ( ; i < Länge; )
if ( callback.apply( object[ i ], args ) === false )
brechen;
} else {
if ( length === undefiniert ) {
für (Name im Objekt)
if ( callback.call( object[ name ], name, object[ name ] ) === false )
brechen;
} sonst
for ( var value = object[0];
ich < Länge && callback.call( value, i, value ) !== false; value = object[ i] ){}
}
Rückgabeobjekt;
}
In jq ist die Add-Methode in jQuery.event
Einige Funktionen sind in der Add-Methode
implementiert
Rufen Sie die Ereignisse des Elements ab und verarbeiten Sie die an diese beiden Daten gebundenen Daten
events speichert eine Liste von Ereignissen
Das Format ist wie folgt
{
click: [{handler:function(){},type:"click",guid:'xx'}.....],
Maus:[...]
}
handle ist die ausgeführte Funktion
(Alle Ausführungsfunktionen sind gleich. Sie durchlaufen die Ereignisliste und führen das entsprechende Ereignis aus)
Dann durchlaufen Sie die Typen, da mehrere Ereignisse gebunden werden können
Die Callback-Funktion gibt auch mehrere Attribute
an
Angenommen, die Rückruffunktion ist handler
handler.guid = gevent.guid
handler.type = name
Der Name sollte als spezieller Name betrachtet werden, damit er leicht gelöscht werden kann
Zum Beispiel
$('#xx')
.bind('click',function(){})
.bind('click.d',handler)
Der Name ist d
Beim Löschen können Sie nur das d-Ereignis löschen, ohne das obige Klickereignis
zu löschen
Schließlich ist das Ereignis an das Element gebunden, aber die ausgeführten Funktionen sind alle
function(){
gevent.handle.apply(arguments.callee.elem, arguments);
});