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

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

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

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

Q&A

解決済

2回答

1406閲覧

javascriptのクリックイベントの値の変更

freemac

総合スコア29

JavaScript

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

0グッド

0クリップ

投稿2019/06/30 01:22

編集2019/06/30 01:56

前提・実現したいこと

javascriptでクリックイベント時に値の変更を行いたい。
clickしたら、this.isplaying = trueとなるようにしたいです。

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

main.js:20 Uncaught ReferenceError: Invalid left-hand side in assignment at HTMLDivElement.<anonymous> (main.js:20)

該当のソースコード

javascript

1{ 2 class A { 3 constructor(){ 4 this.sth1 = document.getElementById('sth1'); 5 this.isplaying = false; 6 } 7 getIsplaying(){ 8 return this.isplaying; 9 } 10 getSth(){ 11 return this.sth1; 12 } 13} 14const a = new A(); 15 16 class B { 17 constructor(){ 18 a.getSth().addEventListener('click' , ()=>{ 19 a.getIsplaying() = true; 20 console.log(a.getIsplaying()); 21 }); 22 } 23 } 24 new B(); 25}

html

1<!DOCTYPE html> 2 <html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <link rel="stylesheet" href="css/styles.css"> 6 </head> 7 <body> 8 <div id="sth1"></div> 9 <script src="javascript/main.js"></script> 10 </body> 11 </html>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/06/30 01:28

コードは```で囲んでください(編集画面にも説明があります) 後「上手く動作しない」ってなんでしょうか?
freemac

2019/06/30 01:39

申し訳ございません。コードの部分は修正いたしました。 falseのまま値が変更できないという旨の表記でした。 ご指摘ありがとうございます。
m.ts10806

2019/06/30 01:44

HTMLもご提示ください。
m.ts10806

2019/06/30 01:46

おそらくというレベルで原因がわかったので回答はしていますが、 コードは「コピペで他者が再現確認できること」が望ましいのでコードは追記しておいてもらえると助かります。
freemac

2019/06/30 01:49

htmlを掲載いたしました。この度は親切なアドバイスをありがとうございます。 以後掲載する際は気をつけます。
guest

回答2

0

cliskしたら、this.isplaying = trueとなるようにしたいです。

audio要素、video要素の再生状態管理を目的としていると仮定して。
仕様を読む限りでは、下記のようにフラグ管理されている為、ユーザ定義クラス側で再生状態を管理する必要はありません。

Re: freemac さん

投稿2019/06/30 02:15

think49

総合スコア18166

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

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

think49

2019/06/30 02:25

回答時点ではHTML記載がありませんでした。 追記されたHTMLでは、isplaying を付与しても「見た目には何も起こらない」のでコードの意図を図りかねます…。
freemac

2019/06/30 10:42

trueとfalseを切り替えたいという旨で質問をさせていただきました。機能のみで見た目はなんら変化なし で、少し伝わりにくかったかと思います。申し訳ないです。ご回答ありがとうございました。
guest

0

ベストアンサー

js

1a.getIsplaying() == true;

ここだけが原因ではないかもしれませんが、代入は=です。
==だと比較式になります。

ただ、もしかしたらこれでは解決せず、
「関数に対して代入しようとしている」ことになるので、
AにsetIsplaying()関数を設けてそちらで値を更新し、
getIsplaying()をするようにしたほうがいいかもしれません。

getter,setterで検索すると良いです。

投稿2019/06/30 01:45

編集2019/06/30 01:52
m.ts10806

総合スコア80854

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

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

freemac

2019/06/30 01:58

早速実行してみようと思います。比較式の部分ではやはりエラー文がでたので、setIsplayig()を 作成してみようと思います。検索キーワードまで教えていただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問