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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Vue.js

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

DOM

DOMは、Document Object Modelの略で、HTML文書やXML文書をアプリケーションから利用するためのAPIです。

JavaScript

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

Q&A

解決済

1回答

1569閲覧

【JavaScript / vue.js / vue-draggable】特定の子要素を持つDOMのv-bind:disabledをtrueにしたい

nanami0221

総合スコア18

Vue.js

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

DOM

DOMは、Document Object Modelの略で、HTML文書やXML文書をアプリケーションから利用するためのAPIです。

JavaScript

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

0グッド

0クリップ

投稿2021/01/06 02:45

編集2021/01/06 03:11

独学でvue.jsを勉強中の者です。
初歩的な質問になりますが、回答いただけると幸いです。

やりたいこと

特定の子要素(.field__work__content)をもつ親要素(draggable)のdisabledを動的(@choose="dragStart")にtrueにしたいです。

質問内容

1.取得したDOM要素から<draggable v-bind:disabled>trueにできるか
2.できない場合、やりたいことをどのように実現すべきか、方向性だけアドバイスいただけると幸いです

コード

vue

1<!DOCTYPE html> 2<html lang="ja"> 3<body> 4 <draggable 5 class="work-field__work__inner" 6 :disabled="isDrag" 7 ref="dragTarget" 8 @choose="dragStart" 9 @end="dragEnd" 10 > 11 <div class="field__work__content" v-if="特定の条件"></div> 12 </draggable> 13 <draggable 14 class="work-field__work__inner" 15 :disabled="isDrag" 16 ref="dragTarget" 17 @choose="dragStart" 18 @end="dragEnd" 19 > 20 <div class="field__work__content" v-if="特定の条件"></div> 21 </draggable> 22 <draggable 23 class="work-field__work__inner" 24 :disabled="isDrag" 25 ref="dragTarget" 26 @choose="dragStart" 27 @end="dragEnd" 28 > 29 <div class="field__work__content" v-if="特定の条件"></div> 30 </draggable> 31 <script> 32 export default { 33 components: { 34 draggable 35 }, 36 37 data: function () { 38 return { 39 isDrag: false; 40 // field__work__contentクラスを持つDOMを取得 41 worskLists: document.getElementsByClassName('field__work__content'), 42 } 43 }, 44 methods: { 45 dragStart: function() { 46 // 配列の数を取得 47 let dragNum = this.worskLists.length; 48 for (let i = 0; i < dragNum; i++) { 49 // 配列の親要素(draggable)を配列に取得 50 let draggableLists = this.worskLists[i].parentNode; 51 52 // 親要素(draggable)のv-bind:disabledをtrueにする 53 this.worskLists[i].parentNode[this.isDrag] = true; 54 }; 55 }, 56 dragEnd: function() { 57 this.isDrag = false; 58 } 59 }, 60 } 61 </script> 62</body> 63</html>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/01/06 03:07

Laravelタグを見て飛んできましたが、Laravel関係ない質問でしたね・・・。 質問を編集して、Laravelタグを削除することをおすすめします。
nanami0221

2021/01/06 03:09

申し訳ございません、、、 削除いたします。
guest

回答1

0

ベストアンサー

特定の子要素(.field__work__content)をもつ親要素(draggable)のdisabledを動的(@choose="dragStart")にtrueにしたいです。

逆で、draggableがtrueの時に、子要素を表示、と考える方が良いです。

また、isDragが全部のdraggbleで共有されているのもおかしいように思えます。

ref="dragTarget"

@choose="dragStart" @end="dragEnd"

この辺もすべてで共通なのもおかしいです。
まずは適切なdataを設計すべきです。(まずは考えてみましょう。)

投稿2021/01/06 10:49

mikkame

総合スコア5036

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

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

nanami0221

2021/01/06 11:53

拙い質問にも関わらず、ご指摘ありがとうございます。 data設計について勉強してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問