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

Explication détaillée des événements dans jQuery

高洛峰
Libérer: 2016-12-28 10:24:14
original
1336 Les gens l'ont consulté

Introduction générale

jQuery ajoute et étend le mécanisme de traitement d'événements de base, qui fournit non seulement une syntaxe de traitement d'événements plus élégante, mais améliore également considérablement les capacités de traitement d'événements

jQuery Event

Explication détaillée des événements dans jQuery

Le chargement du DOM

utilise la méthode $(document).ready() dans jQuery pour remplacer la méthode window.onload en JavaScript, mais ils présentent également quelques différences

1. Calendrier d'exécution

Par exemple, nous avons une page Web avec de nombreuses images

La méthode $(document).ready() est sur cette page Web. Elle peut être exécutée après l'arborescence DOM est chargée et la méthode window.onload doit être exécutée après le chargement de l'arborescence DOM et des images

Si nous utilisons jQuery et que nous voulons l'exécuter après le chargement de la page entière, nous pouvons utiliser méthode load()

Les fonctions des deux morceaux de code suivants sont les mêmes

// jQuery
$(window).load(function(){
  // 代码1
});
// JavaScript
window.onload = function(){
  // 代码2
};
Copier après la connexion

2 Utilisez-le plusieurs fois

L'événement onload de JavaScript ne peut enregistrer qu'un. référence à une fonction à la fois, et $(document).ready() peut enregistrer plusieurs

function one(){
  alert('1');
}
function two(){
  alert('2');
}
// JavaScript
window.onload = one;
window.onload = two;//只执行two()
// jQuery
$(document).ready(function(){
  one();
});
$(document).ready(function(){
  two();
});//one() 和 two()都会执行
Copier après la connexion

3 Abréviation

$(document).ready(function(){}. ); peut être abrégé en $(function(){});

Liaison d'événement

La syntaxe de la fonction bind() : bind(type,[.data],fn)

Premier Le premier paramètre est le type d'événement

Le deuxième paramètre est un paramètre facultatif, un objet de données supplémentaire transmis à l'objet événement en tant que valeur d'attribut event.data

Le troisième Le paramètre est utilisé pour la liaison. La fonction de traitement

est un exemple. Il y a deux div. Le deuxième div est masqué. Lorsque nous cliquons sur le premier div, le deuxième div est affiché. 🎜>Fonctions ajoutées : Si div2 s'affiche lorsqu'on clique sur div1, cachez-le, sinon affichez-le

<div id="div1"></div>
<div id="div2"></div>
<script type="text/javascript">
$(function(){
  $(&#39;#div1&#39;).bind(&#39;click&#39;,function(){
    $(this).next().show();
  });
   
});
Copier après la connexion

Abréviation :

$(function(){
  $(&#39;#div1&#39;).bind(&#39;click&#39;,function(){
    if($(this).next().is(&#39;:visible&#39;)){
      $(this).next().hide();
    }else{
      $(this).next().show();
    }
  });
});
Copier après la connexion

Événement synthétique

$(&#39;#div1&#39;).click(function(){
  if($(this).next().is(&#39;:visible&#39;)){
     $(this).next().hide();
   }else{
     $(this).next().show();
   }
})
Copier après la connexion
1. La méthode hover()

est utilisée pour simuler les événements de survol du curseur. La première fonction est déclenchée lorsque le curseur se déplace sur l'élément, et la deuxième fonction est déclenchée lorsque le curseur sort de l'élément

2. La méthode toggle()

$(&#39;#div1&#39;).hover(function(){
  $(this).next().show();
},function(){
  $(this).next().hide();
});
Copier après la connexion
est. utilisé pour simuler l'événement de clic continu de la souris, lorsque la souris clique sur l'élément pour la première fois, la première fonction est déclenchée, et lorsque la souris clique sur la même fonction, la deuxième fonction est déclenchée

Prévenir événement bouillonnant et empêcher le comportement par défaut

$(&#39;#div1&#39;).toggle(function(){
  $(this).next().show();
},function(){
  $(this).next().hide();
});
Copier après la connexion
1. Empêcher l'événement bouillonnant

méthode stopPropagation()

2. Empêcher le comportement par défaut

méthodepreventDefault() <🎜. >

Remarque : 1, renvoyer false dans jQuery sert à empêcher la propagation d'événements et à empêcher le comportement par défaut

 2. jQuery ne prend pas en charge la capture d'événements

Attributs des objets d'événement

1. event.type

La fonction de la méthode modifiée est d'obtenir le type d'événement

2 event.target

pour obtenir l'élément qui. a déclenché l'événement
$(&#39;#div1&#39;).click(function(ev){
   alert(ev.type);//click
 })
Copier après la connexion

3. event.ratedTarget

Obtenir les éléments associés
$(&#39;#div1&#39;).click(function(ev){
  alert(ev.target.id);//div1
 })
Copier après la connexion

4. event.pageX et event.pageY

Obtenir le x. coordonnée et coordonnée y du curseur par rapport à la page

5. event.which

La fonction de cette méthode est d'obtenir les boutons gauche, central et droit de la souris dans le événement de clic de souris ; pour obtenir les touches du clavier dans l'événement clavier
$(&#39;#div1&#39;).click(function(ev){
 alert(ev.pageX + &#39;,&#39; + ev.pageY);//275,181
 })
Copier après la connexion

Supprimer l'événement

syntaxe de la méthode unbind() : unbind([type],[data]);
$(&#39;#div1&#39;).click(function(ev){
 alert(ev.which);//1是鼠标左键,2是鼠标中见,3是鼠标右键
})
Copier après la connexion

Le premier paramètre est le type d'événement, le deuxième paramètre Le premier paramètre est la fonction à supprimer

Regardez un exemple, liez l'événement suivant à div1

1                                                                                                                                                                                                                             à $('#div1').unbind('mouseover');//Supprimer l'événement de survol de la souris

3. Si la fonction de traitement passé lorsque la liaison est utilisée comme deuxième paramètre, seule cette heure spécifique sera traitée La fonction sera supprimée
$(&#39;#div1&#39;).bind(&#39;click&#39;,function(){
  alert(&#39;1&#39;);
}).bind(&#39;click&#39;,function(){
  alert(&#39;2&#39;);
}).bind(&#39;mouseover&#39;,function(){
  alert(&#39;3&#39;);
})
Copier après la connexion

Opération de simulation

1 Simulations couramment utilisées

Dans jQuery, vous pouvez utiliser la méthode trigger() pour terminer l'opération de simulation. Par exemple, vous pouvez utiliser le code suivant pour déclencher l'identifiant pour l'événement click du bouton btn

$('#btn').trigger( 'click');

2. Déclencher un événement personnalisé

Méthode trigger() Non seulement les événements portant le même nom pris en charge par le navigateur peuvent être déclenchés, mais des événements portant des noms personnalisés peuvent également être déclenchés. .

3. Transmettre les données

4. Effectuer l'opération par défaut

$('input').trigger('focus');

Le code ci-dessus déclenchera l'événement focus de l'élément d'entrée et fera également en sorte que l'élément lui-même obtienne le focus

$(&#39;#btn&#39;).bind(&#39;myclick&#39;,function(){
  alert(&#39;1&#39;);
});
$(&#39;#btn&#39;).trigger(&#39;myclick&#39;);
Copier après la connexion
Si vous souhaitez uniquement déclencher un événement spécifique lié à l'élément < input>, annulez le navigateur en même temps. L'opération par défaut pour cet événement peut utiliser la méthode triggerHandler()

Autres utilisations
$(&#39;#btn&#39;).bind(&#39;myclick&#39;,function(event,message1,message2){
 alert(message1 + message2);
});
$(&#39;#btn&#39;).trigger(&#39;myclick&#39;,["1","2"]);
Copier après la connexion

Ajouter un espace de noms d'événement pour faciliter la gestion

Par exemple, vous pouvez lier plusieurs types d'événements à des éléments. Utiliser des espaces de noms pour normaliser

Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article pourra apporter de l'aide à l'étude de chacun ou. travail. J'espère également soutenir le site Web PHP chinois !

Pour des articles plus détaillés liés aux événements dans jQuery, veuillez faire attention au site Web PHP 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