Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée des événements de liaison et des événements de déliaison dans js

零下一度
Libérer: 2017-04-28 09:48:25
original
1537 Les gens l'ont consulté

Cet article présente principalement les connaissances pertinentes sur les événements de liaison et les événements de déliaison js. A une très bonne valeur de référence. Jetons un coup d'œil avec l'éditeur ci-dessous

La liaison de plusieurs événements dans js utilise deux méthodes : attachEvent et addEventListener, mais il existe des différences entre ces deux méthodes

méthode attachEvent uniquement prend en charge IE678, non compatible avec d'autres navigateurs

méthode addEventListener compatible avec Firefox et Google, non compatible avec IE8 et versions antérieures

Méthode addEventListener

p.addEventListener('click',fn);

p.addEventListener('click',fn2);
function fn(){ console.log("春雨绵绵"); }

function fn2(){
        console.log("到处潮湿");
      }
Copier après la connexion

Méthode attachEvent

p.attachEvent('onclick',fn);
p.attachEvent('onclick',fn2);
function fn(){ console.log("春雨绵绵"); }
function fn2(){
        console.log("到处潮湿");
      }
Copier après la connexion

Remarque : L'événement lié par la méthode attachEvent est avec on, et l'événement lié par addEventListener est sans on

J'ai écrit ci-dessous Une méthode compatible avec IE et Firefox et Google

var p=document.getElementsByTagName("p")[0];
      addEvent('click',p,fn)
      function addEvent(str,ele,fn){
        ele.attachEvent?ele.attachEvent('on'+str,fn):ele.addEventListener(str,fn);
      }
      function fn(){
        console.log("春雨绵绵");
      }
Copier après la connexion

Cela résout parfaitement le problème de compatibilité

S'il y a un événement de liaison, alors il doit y avoir un événement de déliaison, mais les événements de déliaison sont les mêmes que les événements de liaison. Le maléfique IE. fera toujours des spécialisations

La méthode detachEvent ne prend en charge qu'IE678 et n'est pas compatible avec d'autres navigateurs

Méthode RemoveEventListener Compatible avec Firefox et Google, non compatible avec IE8 et versions antérieures

Écriture de la méthode detachEvent :

ele.detachEvent("onclick",fn);

Comment écrire RemoveEventListener :

ele.removeEventListener("click",fn);

J'ai écrit une version de compatibilité ci-dessous La méthode est pour votre référence, et la la mise en œuvre est très simple

function remove(str,ele,fn){
        ele.detachEvent?ele.detachEvent("on"+str,fn):ele.removeEventListener(str,fn);
      }
Copier après la connexion

Remarque : qu'il s'agisse d'un événement de liaison attachEvent ou d'un événement de suppression detachEvent, on doit être ajouté, RemoveEventListender et addEventListender ne sont pas requis Ajouter on

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal