Heim >Web-Frontend >js-Tutorial >Warum wird das Keyup-Ereignis in JQuery nicht ausgeführt?

Warum wird das Keyup-Ereignis in JQuery nicht ausgeführt?

黄舟
黄舟Original
2017-06-27 14:20:041871Durchsuche

Ich möchte
1. Die Codefarbe ändert sich, nachdem ich auf das #skillKey tr-Element geklickt habe.
2. Ändern Sie dann den Text des aktuellen Elements, nachdem Sie die Eingabe über die Tastatur vorgenommen haben Debuggen Lassen Sie uns über Schritt 2 sprechen. Auslassen, um zu warnen (123)Der HTML-Code lautet wie folgt:

<table id="skillKey">
<tbody>
<tr>Q</tr>
</tbody>
<table>

JQueryDer Code lautet wie folgt:

$(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)
        });
    });
})
Warum ändert sich die Farbe des Elements nach dem Klicken, während die Tastatureingabe weitergegeben wird, und es kann keine Warnung ausgegeben werden? Der Effekt kann tatsächlich durch $(

document).keyup() erreicht werden. Ich möchte den Grund wissen. Vielleicht hat es etwas mit der Art des Elements zu tun, das keyup() gebunden werden muss?

Anderes: Eine falsche keyup()

Funktion Aufrufmethode, wenn sie so geschrieben ist:

$(function () {

    $(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {
        $(this).css(&#39;color&#39;,&#39;red&#39;);
        $(this).keyup(alert(123));
    });
})
Dann ändert das Element nach dem Klicken auf tr seine Farbe und ein Pop- Es erscheint Fenster 123. Warum ist das so?

Weisen Sie zuerst auf einen Ihrer Fehler hin

$(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {
    $(this).css(&#39;color&#39;,&#39;red&#39;);
    $(this).keyup(function(){
    alert(123)
    });
});
Sie binden das

Ereignis so. Das Ergebnis ist, dass tr einmal gebunden wird, wenn Sie darauf klicken, und es ist so oft gebunden, wie Sie darauf klicken. In diesem Beispiel ist noch nicht klar, Sie geben eine Eingabe in tr ein und schreiben dann den folgenden Code, um den Effekt zu sehen

$(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;input&#39;, function () {
    $(this).css(&#39;color&#39;,&#39;red&#39;);
    $(this).blur(function(){
        alert(123)
    });
});
Gib mir etwas Vorschläge

Elemente, die verwendet werden müssen Sie können zuerst

zwischenspeichern, $ nicht missbrauchen, und Sie können die Kette

$(&#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)
        });
});

wenn es gut lesbar ist.

Das obige ist der detaillierte Inhalt vonWarum wird das Keyup-Ereignis in JQuery nicht ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn