Maison  >  Article  >  interface Web  >  Parlons brièvement des noms d'événements et des espaces de noms de jquery

Parlons brièvement des noms d'événements et des espaces de noms de jquery

一个新手
一个新手original
2017-09-08 13:46:051726parcourir

Avant-propos

Dans l'API officielle de jquery, il y a quelques descriptions des espaces de noms. L'adresse est : http://api.jquery.com/on/ Il y a quelques introductions en anglais, intitulées " Noms d'événements. et les espaces de noms" a une introduction ci-dessous. Si certains amis ne le comprennent pas très bien, permettez-moi de le présenter brièvement ici !

Espace de noms d'événement jQuery

Regardons d'abord du code :

$(“#haorooms”).on("click.a",function(){});$(“#haorooms”).on("click.a.bb",function(){});$(“#haorooms”).on("dbclick.a",function(){});$(“#haorooms”).on("mouseover.a",function(){});$(“#haorooms”).on("mouseout.a",function(){});

Bien sûr, nous pouvons également utiliser bind pour la liaison d'événement. Nous voyons le code ci-dessus, nous pouvons ajouter notre nom avec un point après l'événement, qui est l'espace de noms de l'événement. Ce que l'on appelle l'espace de noms d'événement consiste à ajouter un alias dans la syntaxe à points après le type d'événement pour référencer l'événement, tel que "click.a", où "a" est l'alias du type d'événement actuel du clic, c'est-à-dire le espace de noms d’événement.

Si nous voulons supprimer l'espace de noms suivant :

$(“#haorooms”).on("click.a.bb",function(){});

nous pouvons utiliser :

$(“#haorooms”).off("click.a.bb");//直接删除bb命名空间 【推荐】$(“#haorooms”).off(".bb"); //直接删除bb命名空间 【推荐】$(“#haorooms”).off(".a"); //删除.a命名空间下面所有的子空间【包括.a.bb   .a.cc等等,.a是.bb的父级,因此.a下面的都会删掉】$(“#haorooms”).off("click");//直接解绑click,下面的命名空间都会删除。

Il est à noter que :

Si on écrit le code suivant :

$(“#haorooms”).on("click",function(){});$(“#haorooms”).on("click.a",function(){});$(“#haorooms”).on("click.a.bb",function(){});

Ensuite il faut utiliser trigger pour déclencher l'événement click, qui est de déclencher le le premier. Ne serait-ce pas Click.a et click.a.bb sont déclenchés, alors comment résoudre ce problème ? Je veux uniquement déclencher click.a et les espaces de noms suivants ?

Ce n’est pas grave ! Il existe les solutions suivantes :

Si un point d'exclamation est ajouté au type d'événement, cela signifie qu'un type d'événement spécifique qui n'inclut pas l'espace de noms est déclenché.

Si on veut seulement déclencher le clic, on peut écrire comme ceci :

$(“#haorooms”).trigger("click!")

Déclencher uniquement bb, on peut écrire comme ceci :

$(“#haorooms”).trigger("click.a.bb");

Avec espace de noms , ça peut être pratique Nous gérons le même événement ! ! !

Événements personnalisés

Je ne le décrirai pas ici ! Tous les événements personnalisés peuvent être déclenchés via les méthodes jQuery. Par exemple, l'exemple suivant personnalise un type d'événement Delay, le lie à l'objet d'élément d'entrée, puis déclenche l'événement personnalisé dans l'événement de clic de bouton.

$("input").bind("delay",function(event){
    setTimeout(function(){
          alert(event.type);
    },1000);});$("input").click(function(){
      $("input").trigger("delay"); //触发自定义事件});

Les événements personnalisés ne sont pas des événements au vrai sens du terme. Ils peuvent être compris comme des fonctions personnalisées. Déclencher un événement personnalisé équivaut à appeler une fonction personnalisée.

Grâce à l'introduction ci-dessus, je me demande si vous avez une compréhension plus profonde des noms d'événements et des espaces de noms de jquery ! Dans l'attente de votre message et de votre échange !


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!

Déclaration:
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