この記事は、Wern AnchetaとCamilo Reyesによってレビューされました。 SetePointのすべてのピアレビューアーズに感謝します。
jQueryは、Webページでほぼすべてのユーザーインタラクション動作をキャプチャし、イベントとして定義することができます。イベントの重要性は、ユーザーのアクションに基づいてそれに応じて応答できることです。たとえば、ボタンクリックまたはスクロールイベントに基づいて、Webページの背景色を変更するコードを記述できます。
jQueryには、さまざまなイベントを処理するためのcontextmenu()
、hover()
、keyup()
などの多くの簡単な方法があります。専用の方法に加えて、jQueryは、ハンドラーをあらゆるイベントに添付できる一般的なon
メソッドも提供します:on('eventName', handler)
。これらの方法は、純粋なJavaScriptでハンドラーを追加できる標準DOMイベントのラッパーにすぎません。
このチュートリアルでは、これらすべてのイベントメソッド(5つの主要なカテゴリに分割されています)をすばやく見て、それらを使用する際のベストプラクティスについて説明します。
キーポイント
- JQueryイベントは、ユーザーのインタラクションをキャプチャし、レスポンシブでインタラクティブなWebアプリケーションを有効にします。イベントハンドラーを添付するには、
.on()
などの方法を使用します。
JQueryのブラウザイベントには、新しいバージョンの特定の特定のメソッドが非推奨になっている - の使用を強調する、エラーの処理エラー、サイズ変更、スクロールが含まれます。
.on('eventName', handler)'
ドキュメントロードイベントにより、スクリプトがDOMの完全に準備ができている後にのみ実行されることが保証され、非初期化された要素に関連するエラーが回避されます。 - JQueryのキーボードとマウスのイベントは、キープレスからマウスの動きまで、 、
- 、
keydown()
、keyup()
など、さまざまな相互作用を処理します。click()
mousemove()
フォームイベントは、フォーム内のユーザー入力とインタラクションを処理します。JQueryは、フォーカス、変更、および提出物を効果的に管理するための専用イベントを提供します。 - ブラウザイベント
イベントがトリガーされます。そのショートカット方法は、jQueryバージョン1.8以降に廃止されているため、代わりに
を使用する必要があります。
要素は、ユーザーが特定の要素の異なる位置にスクロールするときにこのイベントをトリガーできます。 スクロール位置が変更されるたびにハンドラーが呼び出されることを忘れないでください。巻物の原因は関係ありません。矢印キーを押したり、スクロールバーをクリックまたはドラッグしたり、マウスホイールを使用したりすることでトリガーできます。以下のコードでは、ユーザーが500ピクセル以上下にスクロールして操作を実行するかどうかを確認します。 error
resize
eventscroll
error
このイベントは、ブラウザウィンドウのサイズが変更されるたびにトリガーされます。さまざまなブラウザは、実装方法に従って異なる方法でon('error', handler)
ハンドラーを呼び出すことができます。 Internet ExplorerとWebKitベースのブラウザは、
。 resize
次のコードスニペットは、ウィンドウの幅に基づいて画像を交換しますresize
resize
このCodepenデモンストレーションは、イベントの実際の効果を示しています:src
codepen demo $(window).resize(function() {
var windowWidth = $(window).width();
if (windowWidth < 768) {
$("img").attr("src", "image-src-here.jpg");
// 此处更改图像src。
}
});
を表示します
scroll
eventwindow
オブジェクトを除き、スクロールバーを備えた要素はこのイベントをトリガーできます。たとえば、overflow
属性をscroll
またはスクロール可能なiframeに設定する要素は、このイベントをトリガーできます。 $(window).resize(function() {
var windowWidth = $(window).width();
if (windowWidth < 768) {
$("img").attr("src", "image-src-here.jpg");
// 此处更改图像src。
}
});
を表示します ドキュメント読み込みイベント
jQueryには3つの方法があり、ドキュメントまたはDOMのステータスに従ってトリガーされます。それらは
、、load
です。 unload
ready
オブジェクトなどの外部リソースをロードする要素にハンドラーを接続できます。イベントは、接続する要素とそのすべての子供の要素が完全にロードされると発射されます。画像で使用すると、いくつかの問題が発生します。まず、DOMツリーを正しく泡立てません。 2番目の問題は、信頼性でもクロスブラウザーでもないことです。 load()
window
ユーザーがWebナビゲーションから離れると、
を使用してもunload
イベントはキャンセルされないことに注意してください。さらに、ほとんどのブラウザは、このイベントハンドラー内のpreventDefault()
、unload
、およびalert()
への呼び出しを無視します。つまり、次のコードが機能しないことを意味します。
confirm()
prompt()
バージョン1.8以降、
$(window).scroll(function() { if ($(window).scrollTop() >= 500) { $("#alert").text("您已经滚动足够了!"); // 更新警报框内的文本。 } });の両方が非推奨されています。
load()
unload()
event
ほとんどの場合、すべての要素(画像など)を問題なく実行できるようになるまで完全にロードする必要はありません。確認する必要があるのは、DOM階層が完全に構築されていることです。 ready
イベントはあなたのためにこれを処理します。このイベントに添付されたハンドラーは、DOMの準備ができた後にのみ実行されます。ハンドラーの内部では、jQueryコードを実行したり、イベントハンドラーを他の要素に添付したりできます。
下のCodepenデモでは、高解像度画像をロードします。画像が完全にロードされる前にDOMの準備ができていることに気付くでしょう。 ready
codepen demo
を表示します コードがいくつかのCSSスタイルのプロパティの値に依存している場合は、最初に実行する前に対応するスタイルシートまたは組み込みスタイルへの参照を提供する必要があります。
キーボードイベント
キーボードイベントは、ユーザーがキーボードとのやり取りによってトリガーできます。このような各イベントには、キープレスとイベントの種類に関する情報が含まれます。 jqueryには、、keydown()
、keyup()
には3つのキーボードイベントショートカットがあります。 keypress()
およびkeyup
イベントkeydown
名前が示唆するように、ユーザーがキーボードのキーをリリースすると、
がトリガーされます。両方のイベントのハンドラーは任意の要素に添付できますが、現在フォーカスのある要素上のハンドラーのみがトリガーされます。
keyup
イベントオブジェクトのkeydown
属性を使用して、どのキーが押されているかを決定することをお勧めします。これは、ブラウザがこの情報を保存するために異なるプロパティを使用し、jQueryが
which
覚えておくべきもう一つのことは、2つのイベントがwhich
と
および<kbd>a</kbd>
は個別に登録されています。以下のコードでは、ユーザーに<kbd>shift a</kbd>
イベントを登録するアラートボックスを表示します。 <kbd>shift</kbd>
キーが押されると、特定の要素がDOMから削除されます。 <kbd>a</kbd>
keydown
<kbd>y</kbd>
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此处更改图像src。 } });
このイベントはkeypress
イベントに似ています。主な違いの1つは、修飾子と非プリントキー(
、などなど)がkeydown
イベントをトリガーしないことです。特別なキー(矢印キーなど)をキャプチャするために<kbd>Shift</kbd>
イベントを使用してはいけないと言うとき、あまり置くことはできません。入力したキャラクター(aやaなど)を知りたい場合は、<kbd>Esc</kbd>
を使用する必要があります。 keypress
keypress
次のコードスニペットは、キーを押したキーに基づいて要素を隠します。
keypress
codepen demo
$(window).scroll(function() { if ($(window).scrollTop() >= 500) { $("#alert").text("您已经滚动足够了!"); // 更新警报框内的文本。 } });を表示します
マウスイベント マウスイベントは、ユーザーがポインティングデバイス(マウスなど)と対話するとトリガーされます。これらのイベントは、クリック(
、、
など)に基づいているか、モバイル(、click
、dblclick
など)に基づいています。このセクションでは、これらすべてのイベントについて簡単に説明し、それらの間のわずかな違いを説明するためのいくつかのデモンストレーションを含めます。 contextmenu
mouseenter
クリックベースのイベントmouseleave
mousemove
jQueryは、5つのクリックベースのイベントメソッドを定義します。ユーザーが要素のマウスボタンをそれぞれ押してリリースすると、
イベント(名前から見ることができます)は、発射されます。一方、マウスボタンが指定された要素に押し付けられ、その後リリースされた場合にのみ、
イベントがトリガーされます。dblclick
わずかに複雑です。イベントをdblclick
として登録するには、システム関連のカウント間隔が期限切れになる前に2回のマウスクリックが必要です。ダブルクリックによってトリガーされたイベントはブラウザ固有であるため、ハンドラーを単一の要素の両方のclick
とdblclick
の両方に添付しないでください。一部のブラウザは、ダブルクリックする前に2つのシングルクリックイベントを登録する場合がありますが、他のブラウザはダブルクリックする前に1つのシングルクリックイベントのみを登録する場合があります。
contextmenu
イベントは、要素を右クリックした後、コンテキストメニューが表示される前にトリガーされます。つまり、イベントハンドラーで対応するコードを使用して、デフォルトのコンテキストメニューが表示されないようにすることができます。
次のコードスニペットにより、デフォルトのコンテキストメニューが右クリック時に表示されないようにしますが、代わりにカスタムメニューが表示されます。
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此处更改图像src。 } });このデモは、画像をクリックするときに画像にCSSスタイルを適用し、カスタムコンテキストメニューを持っています。 codepen demo
を表示します モバイルベースのイベント
いくつかのイベントは、マウスポインターの移動、要素の入力、削除に基づいています。 6つのモバイルベースのイベントメソッドがあります。
およびイベントから始めましょう。名前が示すように、マウスポインターが要素に入ると、両方のイベントが発射されます。同様に、マウスポインターが要素を離れると、mouseover
およびmouseenter
イベントが発生します。 mouseleave
mouseout
の1つの違いは、マウスポインターがバインドする要素の外側に移動する場合にのみ、前者が発射されることです。一方、要素の子孫の外の動きでさえ、mouseleave
はトリガーされます。 mouseout
とmouseout
の間にはまったく同じ違いがあります。 mouseenter
mouseover
を表示します マウスの動きに基づいてイベントがどのように変化するかを見てみましょう
および。右から大きな青いボックスを入力してから停止してから右にピンク色の箱に入ります。 mouseenter
およびmouseover
は、両方とも1の値を持っている必要があります。左に移動してピンクのボックスを入力すると、mouseenter
カウントが2に変更されます。これは、mouseover
のイベントが泡立っているために起こります。ピンクのボックスのmouseover
イベントは、外側の青いボックスに「バブル」し、mouseover
イベントのカウントを1より増加させます。 mouseover
イベントは、さらに左に移動し、2つのピンク色のボックスの間を停止すると再び発砲します。ブルーボックスの左端に到達すると、mouseover
イベントのカウントは5で、mouseover
イベントのカウントはまだ1になります。 mouseover
mouseenter
まったく同じ推論を使用して、イベントのカウントを説明するために使用できます。さまざまな方向に移動してみて、カウントがどのように変化するかを確認してください。
mousemove
およびhover
イベント
マウスポインターが要素内を移動すると、mousemove
イベントがトリガーされます。マウスが動いている限り、ピクセルと同じくらい小さくてもトリガーされます。したがって、非常に短い時間で何百ものイベントをトリガーできます。ご想像のとおり、イベントハンドラーで複雑な操作を実行すると、ブラウザが遅れます。 mousemove
イベントハンドラーを可能な限り効率的にし、不要になった場合はバインドすることをお勧めします。
hover
マウスポインターが要素に入るか出発する場合にのみ無料。 hover
メソッドを呼び出す方法は2つあります。最初のものは次のとおりです
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此处更改图像src。 } });が実行されます。 2番目の方法は次のとおりです
handlerIn()
今回は、要素を入力して出発するときに同じhandlerOut()
関数が実行されます。
$(window).scroll(function() { if ($(window).scrollTop() >= 500) { $("#alert").text("您已经滚动足够了!"); // 更新警报框内的文本。 } });
codepen demo handlerInOut
注:このデモでは、CSSフィルター効果を使用しますが、これはサポートしていません。 フォームイベント
フォームはインターネット上のどこにでもあります。ほぼすべてのユーザーが、ある時点でフォームに記入します。 jQueryには、フォームイベントを処理する特別な方法があります。これらのイベントは、値が変化したり、焦点を失ったりしたときに発射できます。合計7つのフォームイベントがあり、1つずつ説明します。
、、
、、blur
eventsfocus
focusin
要素が焦点を獲得するたびに、focusout
イベントがトリガーされます。フォーム要素とアンカータグでのみ機能します。他の要素に焦点を合わせてトリガーするには、要素の
属性を設定する必要があります。 Internet Explorerでは、隠された要素に焦点を当てるとエラーが発生する可能性があることを忘れないでください。フォーカスを明示的に設定せずにイベントをトリガーする必要がある場合は、focus
メソッドを呼び出すことができます。 tabindex
focus
要素が焦点を失うたびに、triggerHandler("focus")
イベントがトリガーされます。古いブラウザでは、このイベントはフォーム要素にのみ適用されます。
blur
イベントとは異なり、要素またはその子孫が焦点を獲得するたびに
がトリガーされます。したがって、イベントをバブルアップしたい場合は、両方のイベントを使用する必要があります。 focus
focusin
focusout
、
イベントselect
change
要素の値が変更されると、submit
イベントがトリガーされます。このイベントは、
、、およびchange
要素にのみ適用されます。チェックボックス、ラジオボタン、および選択ボックスの場合、このイベントはユーザーが選択した直後にトリガーされます。他の要素では、要素が焦点を失った後にのみ発射されます。また、JavaScriptを使用して入力要素の値を変更した場合、このイベントはトリガーされないことに注意してください。 <input>
ユーザーが要素内でテキスト選択を行うと、select
イベントがトリガーされます。このイベントの範囲はより限られており、<input>
および<textarea></textarea>
要素にのみ適用できます。選択したテキストを取得する場合は、クロスブラウザーjQueryプラグインを使用する必要があります。
ユーザーがフォームを送信しようとすると、submit
イベントがトリガーされます。ハンドラーを添付してフォーム要素のみを添付できます。このイベントをトリガーするには、ユーザーは<button></button>
、<input type="submit">
、または<input type="image">
要素をクリックする必要があります。興味深いことに、javascriptsubmit
イベントはインターネットエクスプローラーで泡立ちません。ただし、この動作は、jQueryバージョン1.4以降、ブラウザで標準化されています。
の変更
jQueryバージョン1.8以来、、load
、error
メソッドは非推奨です。 unload
メソッドは本質的に不明です。この方法は、AJAXがロードまたは実際に発射されたイベントを意味する場合があります。同様に、load()
メソッドもload
メソッドと混同される場合があります。 JQuery 3では、これらの方法がついに削除されました。これで、これらのイベントリスナーを登録するには、error
メソッドを使用する必要があります。 jQuery.error()
on
最終的な考え
の代わりに
を使用するタイミングを知ることは、手間を避け、貴重な時間を節約するのに役立ちます。純粋なJavaScriptを使用してDOMイベントに接続することは可能ですが、jQueryは、Webサイト/アプリケーションがサポートする必要があるブラウザーに応じて、バックグラウンドのクロスブラウザーの違いの正規化があります。
keypress
イベントの詳細については、公式のjQueryドキュメントにアクセスできます。 jqueryでイベントを使用することに関する質問やヒントがある場合は、コメントを残してください。 keydown
JQueryイベントのFAQ(FAQ)
jQueryのイベントを泡立たせないようにする方法は?
jqueryでは、
メソッドを使用して、イベントがDOMツリーの上向きに泡立つのを防ぐことができます。この方法は、イベントが親要素に伝播するのを防ぎます。デフォルトの動作が発生するのを防ぐことができないことに注意してください。使用方法の例は次のとおりです。メソッドと
メソッドの違いは何ですか? event.stopPropagation()
イベントハンドラーを要素に接続するために、
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此处更改图像src。 } });および
メソッドが使用されます。それらの主な違いは、.bind()
はハンドラーを現在の要素にのみ取り付けるのに対し、.live()
はハンドラーを現在の要素と将来セレクターに一致させるすべての要素に取り付けることです。ただし、
メソッドはjQuery 1.7以降に廃止され、jquery 1.9で削除されていることは注目に値します。代わりにメソッドを使用する必要があります。 .bind()
jqueryでプログラムでイベントをトリガーする方法は?
.trigger()
メソッドを使用して、jQueryでプログラムでイベントをトリガーできます。この方法により、要素上の指定されたイベントを手動でトリガーできます。例は次のとおりです。
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此处更改图像src。 } });
jQueryのイベント代表は何ですか?なぜそれが役立つのですか?
JQueryのイベント代表団は、イベントハンドラーを個々の要素にバインドするのではなく、イベントの処理を親要素に委任する手法です。これは、イベントハンドラーを必要とする多数の要素がある場合、または要素をDOMに動的に追加する場合に特に便利です。バインドする必要があるイベントハンドラーの数を減らすことにより、パフォーマンスを向上させます。jQueryでのイベントのデフォルト操作をブロックする方法は?
event.preventDefault()
$(window).scroll(function() { if ($(window).scrollTop() >= 500) { $("#alert").text("您已经滚动足够了!"); // 更新警报框内的文本。 } });jQueryの
と.click()
の違いは何ですか? .on('click')
jQueryのメソッドは、.click()
の略語です。どちらの方法で、選択した要素にクリックイベントハンドラーを添付します。ただし、動的に追加された要素のイベントを処理し、複数のイベントを一度に処理できるため、.on('click')
メソッドはより大きな柔軟性を提供します。 .on()
.dblclick()
$(window).unload(function() { alert("请不要离开!"); // 不起作用。 });jQueryの要素に複数のイベントをバインドする方法は?
メソッドを使用して、jQueryの要素に複数のイベントをバインドできます。この方法を使用すると、選択した要素に複数のイベントハンドラーを添付できます。例は次のとおりです。.on()
$("#alert").keydown(function(event) { switch (event.which) { case 89: // y的键码 $("#element").remove(); // 从DOM中删除元素 break; } });jQueryでイベントハンドラーをバインドする方法は?
.off()
を使用して接続されたイベントハンドラーを削除します。例は次のとおりです。.on()
$("body").keypress(function(event) { switch (event.keyCode) { case 75: // 75在keypress事件中代表大写K $(".K").css("display", "none"); break; } });jQueryの右クリックイベントを検出する方法は?
mousedown
以上がJQueryのイベントの包括的な見方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Javaandjavascriptaredistinctlanguages:javaisusedforenterpriseandmobileapps、whilejavascriptisforinteractivewebpages.1)javaiscompiled、staticatically、andrunsonjvm.2)javascriptisisterted、dynamsornoded.3)

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
