Maison > interface Web > js tutoriel > Pourquoi l'événement keyup n'est-il pas exécuté dans jquery ?

Pourquoi l'événement keyup n'est-il pas exécuté dans jquery ?

黄舟
Libérer: 2017-06-27 14:20:04
original
1860 Les gens l'ont consulté

Je souhaite réaliser
1. La couleur du code change après avoir cliqué sur l'élément #skillKey tr,
2 Puis modifier le texte de l'élément actuel après la saisie via le clavier afin de faciliter . débogage Parlons de l'étape 2 Omettre d'alerte(123)
Le code HTML est le suivant :

<table id="skillKey">
<tbody>
<tr>Q</tr>
</tbody>
<table>
Copier après la connexion

JQueryLe code est le suivant :

$(function () {

    $(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {
        $(this).css(&#39;color&#39;,&#39;red&#39;);
        $(this).keyup(function(){
        alert(123)
        });
    });
})
Copier après la connexion

Pourquoi l'élément change-t-il de couleur après avoir cliqué, tout en passant la saisie au clavier, incapable d'alerter ? L'effet peut en effet être obtenu via $(document).keyup() Je veux en connaître la raison. Peut-être que cela a quelque chose à voir avec le type d'élément dont keyup() a besoin pour être lié ?

Autre : Une mauvaise keyup() fonction méthode d'appel, si elle est écrite comme ceci :

$(function () {

    $(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {
        $(this).css(&#39;color&#39;,&#39;red&#39;);
        $(this).keyup(alert(123));
    });
})
Copier après la connexion

Puis après avoir cliqué sur tr, l'élément change de couleur et un pop- la fenêtre 123 apparaîtra, pourquoi ?

Signalez d'abord une de vos erreurs

$(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {
    $(this).css(&#39;color&#39;,&#39;red&#39;);
    $(this).keyup(function(){
    alert(123)
    });
});
Copier après la connexion

Vous liez l'événement comme ceci Le résultat est que tr est lié une fois lorsque vous cliquez dessus, et il. est lié autant de fois que vous cliquez dessus. Combien de fois, cet exemple n'est toujours pas évident, vous mettez une entrée dans tr, puis écrivez le code suivant pour voir comment cela fonctionne

$(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;input&#39;, function () {
    $(this).css(&#39;color&#39;,&#39;red&#39;);
    $(this).blur(function(){
        alert(123)
    });
});
Copier après la connexion

Donnez-moi quelques suggestions

Éléments à utiliser Vous pouvez mettre en cache d'abord, n'abusez pas de $, et vous pouvez utiliser la chaîne

$(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {    var $this = $(this);
    $this
        .css(&#39;color&#39;, &#39;red&#39;)
        .keyup(function () {
            alert(123)
        });
});
Copier après la connexion


s'il est facile à lire.

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