質問するログイン新規登録

Q&A

解決済

1回答

1410閲覧

vue.jsで特定の要素にtoggleClassを付けたい

masa207

総合スコア22

Vue.js

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

0グッド

0クリップ

投稿2018/10/16 00:28

0

0

質問失礼いたします。
以下jqueryのコードですが、以下のような事をvue.jsで書きたいのですが、どのようにすればいいでしょうか。
よろしくお願いいたします。

<div class="parent"> <div class="click">click here</div> </div> <div class="parent"> <div class="click">click here</div> </div> <div class="parent"> <div class="click">click here</div> </div> $('.click').on('click',function(){ $(this).parent().next().toggleClass('on'); })

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

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

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

退会済みユーザー

退会済みユーザー

2018/10/16 02:30

今のままではvuejsを用いる理由が見受けられず回答しづらいため、なぜvuejsを用いたいのかを追記してほしいです。
masa207

2018/10/16 02:36 編集

ご返信ありがとうございます。現在nuxt.jsで作ったサイトでモーダルウィンドウを実装しておりまして、次へボタンを押したら次の要素にクラスを付けたり消したりしたいと思い質問させていただきました。$refsと#elで対応しているのですが、methods内のthisがクリックされた自分にしたいのですが、うまくいかない状況です。実際のコードは以下となります。 methods: { next: function () { this.$refs.modal_layer.classList.toggle('active') },
masa207

2018/10/16 04:03

一旦以下コードで対応しました。 next: function (index) { index.path[1].classList.remove('active') index.path[1].nextElementSibling.classList.toggle('active') }
guest

回答1

0

ベストアンサー

template

1 <div v-for="clickObject in clickObjectArray"> 2 <div class="parent" > 3 <div @click="clickEvent(clickObject)" 4 class="click " 5 v-bind:class="{ on: clickObject.isClicked }" > 6 click {{ clickObject.key }} 7 </div> 8 </div> 9 </div>

script

1 data: { 2 clickObjectArray: [ 3 { 4 key: 0, 5 isClicked: false 6 }, 7 { 8 key: 1, 9 isClicked: false 10 }, 11 { 12 key: 2, 13 isClicked: false 14 } 15 ] 16 }, 17 methods: { 18 clickEvent: function (clickObject) { 19 clickObject.isClicked = !clickObject.isClicked 20 } 21 }

clickObjectArrayには都合に合わせてデータを入れて、データの形に合わせてテンプレートも直してください。
動作確認は下記のFiddleから確認してください。

https://jsfiddle.net/yeondev/eywraw8t/419751/

投稿2018/10/16 07:02

yeondev

総合スコア198

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.25%

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

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

質問する

関連した質問