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

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

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

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

Q&A

解決済

2回答

1813閲覧

凄く初歩的なことになるのですが、addEventListener間で変数を渡したいです。

teratail4

総合スコア5

JavaScript

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

0グッド

0クリップ

投稿2020/01/16 10:36

前提・実現したいこと

凄く初歩的なことになるのですが、addEventListener間で変数を渡したいです。

発生している問題・エラーメッセージ

1つ目のaddEventListenerで取得した変数を2つ目のaddEventListenerで使いたい。

該当のソースコード

JavaScript

1 2 this.addEventListener("click", event => { 3 var value = event.hoge; 4 }); 5 6 this.addEventListener("mousedown", event => { 7 var value2 = event.hoge; 8 console.log(value); 9 }); 10

試したこと

  • valueを変数宣言せずに、グローバル変数として渡そうとしたがエラー発生

value = event.hoge;

  • エラーコメント

Uncaught ReferenceError: value is not defined

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

x_x

2020/01/16 11:34

そもそも mousedown が click よりも先なので設計を見直したほうがいいかもしれません。
yambejp

2020/01/17 01:57

イベントのhogeだと何を取りたいかわかりませんね 実際に取れる値を例示したほうがよいでしょう thisも唐突にだされてもブレがおおきくなるだけです
guest

回答2

0

ベストアンサー

「グローバル」でしたら外で宣言しては。

js

1let value; 2 3this.addEventListener("click", event => { 4 value = event.hoge; 5}); 6 7this.addEventListener("mousedown", event => { 8 var value2 = event.hoge; 9 console.log(value); 10}); 11 12

投稿2020/01/16 10:49

m.ts10806

総合スコア80850

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

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

m.ts10806

2020/01/17 01:42

熱心なアンチに追われてる気がする。あまりにもコメントのない低評価がつきすぎる。同じ人かな。前にもあったけど。
teratail4

2020/01/17 09:48

なるほど! ありがとうございます、助かりました。
guest

0

this.click_value = event.hoge;
とか
this.mouse_value = event.hoge;
とか、インスタンス(this)に代入する手もありかな?
既存変数を指定すると変になるけど。

投稿2020/01/16 10:50

編集2020/01/16 10:53
shiracamus

総合スコア5406

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

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

miyabi_takatsuk

2020/01/16 10:57

質問者さんのコードはアロー関数の中で、引数を変数に入れようとしてるので、thisが変わるので、質問者さんの意図通りにならないかと。 いや、windowに入る形になるからいいかもですね。
thyda.eiqau

2020/01/17 10:15

thisは多分Elementなのでしょうけど、何なのかよくわからないので、 event.currentTarget.dataset.click_value とかのほうが意図がブレない気がします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問