Les gens utilisent plus sur la surveillance des événements dans JS, mais ce n'est rien de plus que de juger si le navigateur prend en charge AddEventListener et Piévacte. Il existe de nombreuses façons de rechercher la surveillance des événements en ligne, mais certaines ne sont pas très parfaites. La méthode suivante est la même pour ajouter l'écoute des événements, sauf que certaines chirurgies ont été effectuées lors de l'annulation de la liaison des événements, et l'utilisation de fonctions anonymes peut désormais être prise en charge, donc lors des événements de liaison, il n'a plus besoin de nommer la fonction séparément.
Code principal:
La copie de code est la suivante:
/ * Événements de liaison et non lié * /
var handlehash = {};
var bind = (function () {
if (window.addeventListener) {
Fonction de retour (el, type, fn, capture) {
el.addeventListener (type, function () {
fn ();
handlehash [type] = handlehash [type] || [];
handlehash [type] .push (arguments.callee);
}, capturer);
};
} else if (window.attachevent) {
Fonction de retour (el, type, fn, capture) {
el.attachevent ("on" + type, fonction () {
fn ();
handlehash [type] = handlehash [type] || [];
handlehash [type] .push (arguments.callee);
});
};
}
}) ();
var unstind = (function () {
if (window.addeventListener) {
fonction de retour (el, type) {
if (handlehash [type]) {
var i = 0, len = handlehash [type] .length;
pour (i; i <len; i + = 1) {
el.RemoveEventListener (type, handlehash [type] [i]);
}
};
};
} else if (window.attachevent) {
fonction de retour (el, type) {
if (handlehash [type]) {
var i = 0, len = handlehash [type] .length;
pour (i; i <len; i + = 1) {
el.detachevent ("on" + type, handlehash [type] [i]);
}
};
};
}
}) ();
Analyse principale:
HandleHash fait la table de hachage pour mettre en cache la fonction des événements. HandleHash ['Event Name'] est un tableau pour ajouter plusieurs méthodes d'écoute d'événements. Lorsque vous déformez quel événement est insuffisant, parcourez le tableau de Handlehash ['Nom de l'événement'], puis retirez-le.
utiliser:
La copie de code est la suivante:
bind (obj, 'click', function () {
alert ('click');
});
Unbind (obj, 'click');