質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

4回答

1617閲覧

javascriptのイベントについて

ruby_nyumon

総合スコア93

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/02/20 08:07

<script type="text/javascript"> window.onload = function () { document.getElementById( "sample1" ).onclick = function( $event1 ){ document.getElementById( "sampleOutputTarget" ).innerHTML = $event1.target.id; document.getElementById( "sampleOutputCurrentTarget" ).innerHTML = $event1.currentTarget.id; }; document.getElementById( "sample2" ).onclick = function( $event2 ){ document.getElementById( "sampleOutputTarget" ).innerHTML = $event2.target.id; document.getElementById( "sampleOutputCurrentTarget" ).innerHTML = $event2.currentTarget.id; }; document.getElementById( "sample3" ).onclick = function( $event3 ){ document.getElementById( "sampleOutputTarget" ).innerHTML = $event3.target.id; document.getElementById( "sampleOutputCurrentTarget" ).innerHTML = $event3.currentTarget.id; }; } </script>

について、$event1が何を表しているのか、わかりません...どこから渡ってきた引数なのか?
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

JavaScript

1HTMLElement.onclick = function(event) { ... };

これは、HTML要素がマウスでクリックされた時に発生するイベントのリスナー関数を登録するコードです。
イベントリスナー関数の引数 event には、MouseEvent オブジェクトが渡されます。

ご参考になれば。

投稿2016/02/20 08:35

tkanda

総合スコア2425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruby_nyumon

2016/02/21 02:14

ありがとうございます!
guest

0

ベストアンサー

こんな実証コードを入れて開発ツールのコンソールを開くとわかりやすいですよ。

Javascript

1window.onload = function () { 2 document.getElementById( "sample1" ).onclick = function( $event1 ){ 3 console.log($event1); 4 }; 5}

こうすると、

click { target: <a#sample1>, buttons: 0, clientX: 39, clientY: 17, layerX: 39, layerY: 17 }

こんな風にeventオブジェクトが$event1に入ってくるのが分かります。
targetはクリックされたエレメントのオブジェクト(ここではaタグにidを振ったので、「a#sample1」と出ています)になります。
ですので、$event1.target.id とするとクリックされたもののidを取ることができます。

詳しくは、
https://developer.mozilla.org/ja/docs/Web/API/Event
こちらをご覧ください。

投稿2016/02/20 08:43

shi_ue

総合スコア4437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruby_nyumon

2016/02/21 02:13

理解できました!ありがとうございます!
guest

0

示されているコードは画面ロード時に各要素にクリックイベントを設定しているものです。
$event1は単純に引数でクリックイベントが発生したときにイベントオブジェクトと呼ばれるものが格納されます。
ちなみに、「どこから」となると正直正しいかは不安ですが、「イベントが発生した要素から」となるかと思います。

投稿2016/02/20 08:32

orange0190

総合スコア1698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruby_nyumon

2016/02/21 02:14

ありがとうございます!
guest

0

こんにちは。

Java/Javascriptには詳しくないのですが、回答依頼を頂いたので回答してみます。外していたらすいません。

構文から推測するに各onclickには関数を登録でき、$eventNを仮引数として持つ関数をonclickへ登録しているのだと思います。
そして、該当のコントロールがクリックされたら、$eventNに恐らくイベント情報を設定して登録した関数が呼ばれるのではないでしょうか?

$event1が何を表しているのか、わかりません...どこから渡ってきた引数なのか?

クリックされた時にフレームワークから渡ってくる引数と思います。
表している内容はすいません、Javascriptに詳しくないので分かりません。

投稿2016/02/20 08:22

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruby_nyumon

2016/02/21 02:14

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問