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

Analyse détaillée de la description de l'événement natif js (code joint, simple et clair)

亚连
Libérer: 2018-05-18 14:29:01
original
1993 Les gens l'ont consulté

Voici les événements natifs js que j'ai compilés pour vous. Les étudiants intéressés peuvent y jeter un œil.

1. Flux d'événements
Le flux d'événements est principalement divisé en deux types : le bouillonnement d'événements et la capture d'événements. Les événements bouillonnent et l'élément cible reçoit l'événement en premier, puis se propage progressivement vers des nœuds moins spécifiques. La capture d'événements est exactement le contraire, l'idée principale est que les nœuds moins spécifiques reçoivent d'abord l'événement puis se propagent progressivement jusqu'au nœud cible.

<html>
    <head>
        <title>事件流</title>
    </head>
    <body>
        <div id ="testDiv"></div>
    </body>
 </html>
Copier après la connexion

Lorsqu'un div est cliqué, l'événement bouillonnant reçoit l'ordre des nœuds div->body->html->document
L'événement de capture reçoit l'ordre des nœuds document->html -> ;body->div

2. Gestionnaire d'événements
a) Gestionnaire d'événements HTML
Chaque événement pris en charge par un élément peut utiliser un HTML portant le même nom que les caractéristiques du gestionnaire d'événements correspondant pour spécifier.
Inconvénients : 1. Problème de décalage horaire, l'utilisateur peut avoir cliqué sur l'élément de page avant que le navigateur n'ait analysé la fonction d'événement de clic - enveloppez l'erreur via try-catch
2. La chaîne de portée du gestionnaire d'événements est différents navigateurs peuvent produire des résultats différents.
3. Le code HTML et le code Javascript sont étroitement couplés, ce qui n'est pas propice à l'expansion et à la maintenance.
b) Gestionnaire d'événements de niveau DOM0
Attribuez la fonction à l'attribut du gestionnaire d'événements d'élément
var btn = document.getElementById("#dv");
Gestionnaire d'événements pour supprimer des éléments – btn.onclicn = null

Les gestionnaires d'événements ajoutés de cette manière sont traités pendant la phase de bouillonnement des événements.

c) Gestionnaire d'événements de niveau DOM2

Spécifiez le gestionnaire d'événements addEventListener
Supprimez le gestionnaire d'événements RemoveEventListener
Recevez trois paramètres, à savoir le nom de l'événement à traiter, la fonction du gestionnaire d'événements, la valeur booléenne (true signifie appeler le gestionnaire dans la phase de capture, false signifie appeler le gestionnaire d'événements dans la phase de bouillonnement)

Remarque : addEventListener doit être supprimé via RemoveEventListener et les paramètres doivent être cohérents, donc les fonctions anonymes ajoutées via addEventListener ne peuvent pas être retiré.

d)IE事件处理程序

attachEvent
detachEvent
两个方法接收相同的两个参数(”onclick”,”function(){}”);
由于IE8级更早版本只支持事件冒泡,所以通过attachEvent添加的事件处理程序只能被添加到冒泡阶段
注意:attach中第一个参数是onclick而不是addEventListener中的click
IE事件处理程序attachEvent添加的在全局作用域中运行

var btn = document.getElementById(“#tes”); 
btn.attachEvent(“onclick”,function(){ 
alert(this == window); //true 
})
Copier après la connexion

3、跨浏览器的事件处理程序。
由于不同浏览器之间事件处理程序不同,所以有必要编写可以跨浏览器使用的事件处理程序。

var eventUtil = {
    addHandler:function(element,type,handler){
        if(element.addEventListener){
            element.addEventListener(type,handler,false);
        }else if(element.attachEvent){
            element.attachEvent("on" + type,handler);
        }else{
            element["on" + type] = handler;
        }
    },
    removeHandler:function(element,type,handler){
        if(element.removeEventListener){
            element.removeEventListener(type,handler,false);
        }else if(element.deatchEvent){
            element.deatch("on" + type,handler);
        }else{
            element["on" + type] = null;
        }
    }
}
Copier après la connexion

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

JS弹出窗口代码大全

几个前端常见的JS排序代码

JS去掉字符串前后空格或去掉所有空格的用法

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!