Maison > interface Web > js tutoriel > Résumé de plusieurs façons de lier des événements à l'aide de jQuery dans JavaScript_jquery

Résumé de plusieurs façons de lier des événements à l'aide de jQuery dans JavaScript_jquery

WBOY
Libérer: 2016-05-16 15:12:04
original
1242 Les gens l'ont consulté

Pendant le processus de développement, il est souvent nécessaire d'ajouter des événements aux éléments DOM. Voici plusieurs manières :

Écrivez d'abord de jolis boutons

//引入JQuery
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<span id="tips"></span>
<input type="button" id="btn1" value="OK1" onclick="alert('hello btn1');">
<input type="button" id="btn2" value="OK2" click-type="listener">
<input type="button" id="btn3" value="OK3" click-type="listener">
<input type="button" id="btn4" value="OK4">
<input type="button" id="btn5" value="OK5">
<div id="btn-list">
<input type="button" id="btn6" value="OK6">
<input type="button" id="btn7" value="OK7">
</div>
Copier après la connexion

L'effet est le suivant :

201636142316641.png (263×69)

1. Utilisez onclick directement dans btn1. Cette méthode est appelée un événement en ligne. L'avantage est que vous pouvez clairement voir que le bouton est lié à l'événement click ; élément).onclick;

L'inconvénient de cette méthode est qu'un élément ne peut spécifier qu'un seul événement en ligne. Après avoir ajouté ce code, vous constaterez que onclick="alert('hello btn1');" est écrasé :

(function(){
  var _btn1 = document.getElementById('btn1'),
    _tips = document.getElementById('tips');
    _btn1.onclick=function(){
      _tips.innerHTML='hello world~';
    };
     
})();
Copier après la connexion

2. Utilisez JS natif pour lier des événements à plusieurs éléments. Dans les versions antérieures à IE 9, vous devez utiliser attachEvent au lieu de addEventListener

.
(function(){
  var _btns=document.querySelectorAll("[click-type=listener]"), i = 0, len = _btns.length;
     for (i; i < len; ++i) {
      var _btn=_btns[i];
      _btn.addEventListener("click", function (evt) {
        var target = evt.target
        alert('hello '+target.id);
      });
    }
 
})();
Copier après la connexion

3. La deuxième méthode a une logique plus simple et une qualité supérieure, mais la quantité de code est plus importante et la compatibilité d'IE doit être prise en compte Puisque nos projets utilisent généralement JQuery, nous pouvons l'écrire comme ceci : <🎜. >

$("#btn4").click(function(){
  alert("hello btn4");
});
 
$("#btn5").on("click",function(){
  alert("hello btn5");
});
Copier après la connexion
Les méthodes on et bind utilisées ci-dessus ont le même effet

4. Utilisez on pour lier un ou plusieurs événements à plusieurs éléments :

$("#btn-list").on("click","input",function(evt){
  alert("hello "+ evt.target.id);
});
Copier après la connexion
C'est la méthode la plus couramment utilisée dans mon développement. Elle présente un avantage.

/*动态添加几个button*/
(function(){
  for(var i=8;i<10;i++){
    $("#btn-list").append("<input type='button' id='btn"+i+"' value='OK"+i+"'>");
  }
})();
Copier après la connexion
De cette façon, les événements de clic peuvent être automatiquement ajoutés lors de l'ajout dynamique d'éléments. Par exemple, nous utilisons souvent AJAX pour charger certaines données et les ajouter dynamiquement à la page, ce qui est beaucoup plus simple.

De plus : il est relativement simple d'utiliser du JS natif pour mettre en œuvre la délégation d'événements,

<ul id='list'>
  <li>css</li>
  <li>js</li>
  <li>html</li>
</ul>

(function(){
  var a=document.getElementById('list');
    a.addEventListener('click',function(e){
    var b = e.target; 
    alert(b.innerHTML);
  },false);
})();

Copier après la connexion


É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