Exemples de fonctions d'événement jQuery courantes

bind( type, [data], fn ) exemple de fonction

bind() est la fonction la plus couramment utilisée. Faites attention au paramètre data dans. la signature de la méthode. Vous pouvez transmettre quelques données supplémentaires avant le traitement de l'événement :

function handler(event) {
  alert(event.data.foo);
}
$("p").bind("click", {foo: "bar"}, handler)

Faites attention à l'utilisation des paramètres d'événement. L'objet événement est unifié dans jQuery, et l'objet événement est passé comme seul paramètre du. fonction de traitement des événements.

data Nous devons également accéder aux paramètres via event.data Pourquoi devons-nous fournir des paramètres de données ?

Parce que nous rencontrons souvent ce problème : nous espérons effectuer des tâches spéciales. traitement basé sur certaines données de la source de l'événement lors du traitement de l'événement.

Il existe actuellement deux solutions controversées sur Internet :

(1) Utiliser des attributs d'élément personnalisés pour stocker les données.

Par exemple :

<div id="testDiv5" customer="customer data 1">获取自定义数据-1</div>

Obtenir des données dans la fonction de traitement d'événements :

$("#testDiv5").bind("click", function(event) { alert($(event.target).attr("customer")); });

la fonction attr est la connaissance de la conférence précédente, qui est utilisée pour obtenir le " attributs d'élément" de l'élément, et peut obtenir des attributs d'élément personnalisés. Cliquez sur div pour afficher :


image_thumb.png

(2) Utilisez un script pour transmettre des données au gestionnaire d'événements : <🎜 L'élément >

<div id="testDiv6">获取自定义数据-2</div>

n'a aucun attribut personnalisé Lors de l'ajout d'un gestionnaire d'événements, des données supplémentaires seront transmises :

$("#testDiv6").bind("click", { customer: "customer data 2" }, function(event) { alert(event.data.customer) });

Le. le résultat après avoir cliqué sur le div est le même que la méthode 1 :

image_thumb_1.png


La méthode 1 est facile à stocker et à trouver des données. Cependant, les attributs personnalisés. ne réussissez pas la vérification du W3C.

La méthode 2 doit trouver un moyen de stocker les données vous-même et développer des règles pour trouver des données pour des éléments spécifiés.

Du point de vue d'un "développeur", la méthode 1 est. plus simple et plus intuitif Cependant, les défauts sont sérieux, alors décidez vous-même comment choisir.

one( type , [data], fn) La fonction est la même que bind, mais elle est uniquement exécutée. une fois.

2. trigger(event, [data]) et triggerHandler(event, [data])

Bien que les éléments soient liés à certains événements, tels que le clic, mais parfois vous souhaitez le faire. déclencher ces événements dans le programme. Ces deux fonctions peuvent réaliser cette fonction

La principale différence est que trigger déclenchera l'action par défaut du navigateur, tandis que triggerHandler Il ne démarrera pas.

Les deux fonctions. se distingue clairement à travers l'exemple suivant :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>
    <title>jQuery事件处理:trigger和triggerHandler示例</title>
    script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script type="text/javascript">
        $(function()
        {
            $("#old").click(function()
            {
                $("#divResult").html("");
                $("input").trigger("focus");
            });
            $("#new").click(function()
            {
                $("#divResult").html("");
                $("input").triggerHandler("focus");
            });
            $("input").focus(function() { $("<span>Focused!</span>").appendTo("#divResult"); });
        })        
    </script></head><body>
    <button id="old">
        .trigger("focus")</button>
    <button id="new">
        .triggerHandler("focus")</button><br />
    <br />
    <input type="text" value="To Be Focused" />
    <div id="divResult"></div>
    </body>
    </html>

Lorsque le bouton ".trigger" est cliqué, Focused sera appelé deux fois, et l'élément d'entrée sera Focused :

image_thumb_4.png


Lorsque l'on clique sur le bouton ".triggerHandler", il n'est appelé qu'une seule fois et l'élément d'entrée n'obtient pas le focus :

image_thumb_3.png


En d'autres termes, la fonction de déclenchement déclenche le comportement par défaut du navigateur consistant à obtenir le focus, permettant à l'élément d'entrée d'obtenir le focus, donc le focus est appelé à nouveau Fonction de gestion des événements.

triggerHandler appelle uniquement la fonction de gestion des événements liée à l'événement focus et ne déclenche pas le comportement du navigateur, de sorte que l'élément d'entrée final n'obtient pas le focus.

Formation continue
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery事件处理:trigger和triggerHandler示例</title> <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script> <script type="text/javascript"> $(function() { $("#old").click(function() { $("#divResult").html(""); $("input").trigger("focus"); }); $("#new").click(function() { $("#divResult").html(""); $("input").triggerHandler("focus"); }); $("input").focus(function() { $("<span>Focused!</span>").appendTo("#divResult"); }); }) </script> </head> <body> <button id="old"> .trigger("focus")</button> <button id="new"> .triggerHandler("focus")</button><br /> <br /> <input type="text" value="To Be Focused" /> <div id="divResult"></div> </body> </html>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel