🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

Q&A

解決済

1回答

1503閲覧

【Vue】ケバブケースのクラス名をクリックで付けたり外したりしたい

nomu_lui

総合スコア11

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

0グッド

0クリップ

投稿2021/03/02 22:25

実現したいこと

ケバブケースのクラス名をクリックで付けたり外したりしたいです。
Buefyというフレームワークを使っており、is-activeというクラスが付与されたら、モバイル上でヘッダーの開閉ができるようになっています。
ただ、このフレームワークはJSは含まれずCSSのみで構成されているため、is-activeの付け外しは自分で実装するようにと記載されています。
公式

Vueではv-bindのときはケバブケースでは読みこめず、キャメルケースが推奨されており、どうしてもケバブケースを使いたいならシングルクォーテーションで囲むと使えるというのは、調べて分かりました。

ですが、v-on:clickis-activetruefalseの切り替えを実装する時に、この(v-on:click="'is-active'=!'is-active'")書き方だとコンパイルエラーとなってしまいました。

なにか良い書き方があればアドバイスを頂けますと幸いです。
よろしくお願いいたします。

エラー

Errors compiling template: invalid expression: Invalid left-hand side in assignment in 'is-active'=!'is-active' Raw expression: v-on:click="'is-active'=!'is-active'"

試したこと

Vue

1 <div> 2 <a 3 role="button" 4 class="navbar-burger" 5 v-bind:class="{ active: 'is-active' }" 6 aria-label="menu" 7 aria-expanded="false" 8 data-target="navbarBasicExample" 9 v-on:click="'is-active'=!'is-active'" ←ここです 10 > 11 <span aria-hidden="true"></span> 12 <span aria-hidden="true"></span> 13 <span aria-hidden="true"></span> 14 </a> 15 </div> 16 17 <div 18 id="navbarBasicExample" 19 class="navbar-menu" 20 v-bind:class="{ active: 'is-active' }" 21 > 22 </div>

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

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

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

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

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

guest

回答1

0

ベストアンサー

文法的にはこう。
クリックしたらis-activeの真偽値が変わるのでこう。

Diff

1- v-on:click="'is-active'=!'is-active'" 2+ v-on:click="is-active = !is-active"

投稿2021/03/02 23:04

編集2021/03/03 12:50
kai0310

総合スコア2076

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

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

nomu_lui

2021/03/03 11:18

教えていただいた書き方でも、同じくエラーになってしまいました。 `{{ }}`これで囲ったりするのが良いのでしょうか。
szk.

2021/03/03 12:23

あと、「=!」ではなく「!=」かと
nomu_lui

2021/03/03 21:29

ありがとうございます! 色々勘違いしていたようで、教えていただいたヒントを元に実装できました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問