ホームページ >ウェブフロントエンド >jsチュートリアル >jqueryでkeyupイベントが実行されないのはなぜですか?

jqueryでkeyupイベントが実行されないのはなぜですか?

黄舟
黄舟オリジナル
2017-06-27 14:20:041871ブラウズ

1. #skillKey tr 要素をクリックするとコードの色が変わります。
その後、キーボード入力後に現在の要素のテキストが変更されます。
デバッグの都合上、ステップ 2 は省略されます。 asalert(123)HTML コード コードは次のとおりです:

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

JQuery

コードは次のとおりです:

$(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)
        });
    });
})
クリックすると要素の色が変わるのに、キーボードから入力するとアラートが表示されないのはなぜですか?この効果は確かに $(

document

).keyup() を通じて達成できます。理由を知りたいです。おそらく、それは keyup() がバインドする必要がある要素のタイプと関係があるのでしょうか? 別: keyup()

関数

呼び出しメソッドが間違っています。次のように書かれている場合:

$(function () {

    $(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {
        $(this).css(&#39;color&#39;,&#39;red&#39;);
        $(this).keyup(alert(123));
    });
})
trをクリックした後に要素の色が変わると、ウィンドウ123がポップアップします。これはなぜですか?

最初に間違いを 1 つ指摘します

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

このように

event

をバインドすると、tr はクリックすると 1 回バインドされ、クリックするたびにバインドされます。この例はまだバインドされていません。あなたは tr にいます。入力を配置して、効果を確認するために次のコードを書いてくださいrreee、いくつかの提案をしてください

まず使用する必要がある要素は

cache

です。$ を乱用しないでください。読みやすい場合は連鎖を使用できます

$(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;input&#39;, function () {
    $(this).css(&#39;color&#39;,&#39;red&#39;);
    $(this).blur(function(){
        alert(123)
    });
});

以上がjqueryでkeyupイベントが実行されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。