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

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

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

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

3807閲覧

動的に生成した要素にドラッグアンドドロップの機能を付けているが反映されません

mori_reta

総合スコア10

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/01/21 06:55

イメージ説明

fullcalendar v3.9.0を使用しています。
予定リストにある、My Event1から5はhtmlで事前に作成してあるのですが、ドラッグアンドドロップ、できませんの2つはその下にある追加ボタンで動的に要素を作成したものになります。
予定リスト内の項目は右のカレンダーの日付内にドラッグアンドドロップができるようにしてあります。
しかし、My Eventはドラッグアンドドロップができるのですが、動的に作成した要素はできません。

こちらの中にドラッグアンドドロップのコードも含まれています。

html

1<script> 2 // ページ読み込み時の処理 3$(document).ready(function () { 4 5 // 外部イベントを初期化します 6 // ----------------------------------------------------------------- 7 $('#external-events .fc-event').each(function() { 8 // カレンダーがドロップ時にイベントをレンダリングできるようにデータを保存します 9 $(this).data('event', { 10 title: $.trim($(this).text()), // イベントタイトルとして要素のテキストを使用 11 stick: true //ユーザがナビゲートする時に維持する(renderEventメソッドのドキュメントを参照) 12 }); 13 14 // jQuery UIを使用してイベントをドラッグ可能にします 15 $(this).draggable({ 16 zIndex: 999, 17 revert: true, // イベントをもとの状態に戻します 18 revertDuration: 0 // ドラッグ後の元の位置 19 }); 20 }); 21 22 23 // カレンダーの設定 24 $('#calendar').fullCalendar({ 25 header: { 26 left: 'prev,next today', 27 center: 'title', 28 right: 'month,agendaWeek,agendaDay' 29 }, 30 height: 550, 31 firstDay: 1, 32 33 34 35 lang: "ja", 36 selectable: true, 37 selectHelper: true, 38 select: function(start, end) { 39 var title = prompt("予定タイトル:"); 40 var eventData; 41 if (title) { 42 eventData = { 43 title: title, 44 start: start, 45 end: end 46 }; 47 $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true 48 } 49 $('#calendar').fullCalendar('unselect'); 50 }, 51 droppable: true, // これにより、モノをカレンダーにドロップできます 52 53 editable: true, 54 eventLimit: true, 55 }); 56 57 58}); 59</script> 60 61 62 63 64<style> 65 66 html, body { 67 margin: 0; 68 padding: 0; 69 font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif; 70 font-size: 14px; 71} 72 73#external-events { 74 position: fixed; 75 z-index: 2; 76 top: 20px; 77 left: 20px; 78 width: 150px; 79 padding: 0 10px; 80 border: 1px solid #ccc; 81 background: #eee; 82} 83 84#external-events .fc-event { 85 margin: 1em 0; 86 cursor: move; 87} 88 89#calendar-container { 90 position: relative; 91 z-index: 1; 92 margin-left: 200px; 93} 94 95#calendar { 96 max-width: 900px; 97 margin: 20px auto; 98} 99 100</style> 101 102 </head> 103 <body> 104 105 106 107 108<div id='external-events'> 109 <p> 110 <strong>予定リスト</strong> 111 </p> 112 <div class='fc-event'>My Event 1</div> 113 <div class='fc-event'>My Event 2</div> 114 <div class='fc-event'>My Event 3</div> 115 <div class='fc-event'>My Event 4</div> 116 <div class='fc-event'>My Event 5</div> 117 <input type="text" id="favtext" style="display:none;"> 118 <input type="button" id="addurl" value="追加" onclick="bar();" style="display:none;"> 119 <label> 120 <img src="プラスオレンジ.png"> 121 <input type="checkbox" style="display: none;" onchange="clickBtn1(this.checked)"> 122 </label> 123</div>

こちらが動的に要素を作成するコードです。

javascript

1//↓リストの追加 2function bar() { 3 // a 要素の作成と属性の指定 4 var newAnchor = document.createElement("a"); 5 var newTxt = document.createTextNode( document.getElementById("favtext").value ); 6 newAnchor.appendChild( newTxt ); 7 8 // 要素の作成 9 var newDiv = document.createElement("div"); 10 newDiv.appendChild ( newAnchor ); 11 newDiv.className = "fc-event"; 12 13 14 15 // リストに追加 16 var list = document.getElementById("external-events"); 17 let refNode = document.getElementById("favtext"); 18 list.insertBefore( newDiv, refNode ) 19}

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

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

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

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

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

guest

回答1

0

ベストアンサー

動的作成時にdraggable属性つければよいのでは?
jquery-uiでdroppable/draggableを指定するほうが楽かも

投稿2020/01/21 07:06

yambejp

総合スコア114585

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

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

mori_reta

2020/01/21 07:25

htmlコード内のjqueryでdroppableは使用されているのですが、それとは別に利用するということですかね…?
yambejp

2020/01/21 07:34

jquery-uiを導入するとdroppable()やdraggable()というメソッドが 使えてより直感的な書き方ができます
mori_reta

2020/01/22 05:47

動的作成したリストにui-draggable ui-draggable-handleが付与されていないことを本日理解したのですが、作成時にそれらを付与するやり方がわかりません…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問