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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

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

HTML

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

Q&A

0回答

926閲覧

jquer UIでオブジェクトの移動範囲を制限する

lyzmfeqpxs54

総合スコア237

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

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

HTML

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

0グッド

0クリップ

投稿2020/08/18 03:24

編集2020/08/18 05:07

いつもお世話になっております。

jquer UIを用いてファイルの管理ができるようなものを作成したいと思っております。
実際は動かすたびにajaxを行う予定なのですが、現状は見た目の動きのみの部分を作成しています。

イメージ説明

矢印をそれぞれクリックで下記にようにリストが出現します
イメージ説明

下記コードのように書きそれぞれの要素をファイル間をまたいで移動できるようにはなったのですが、下記画像のようにファイル1の上部また、ファイル2の範囲の外である最下部にもドラッグアンドドロップで移動できてしまいます。

イメージ説明
これを制限し、必ず「内側2つのid="jquery-ui-sortable"の ul要素(ファイル1とファイル2の下のui要素)」の中だけに入るようにしたいのですが、どのようにすれば分からずこちらに質問させていただきました。
参考になるサイトでも構いませんのでご教示いただけますと幸いです。
よろしくお願いいたします。

html

1<head> 2 <script src="https://code.jquery.com/jquery-1.12.4.js"></script> 3 <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 4 <link type="text/css" rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/cupertino/jquery-ui.min.css" /> 5 6 <style> 7 #jquery-ui-sortable { 8 list-style-type: none; 9 margin: 0; 10 padding: 0; 11 width: 350px; 12 } 13 #jquery-ui-sortable li { 14 margin: 0 3px 3px 3px; 15 padding: 0.3em; 16 padding-left: 1em; 17 font-size: 15px; 18 font-weight: bold; 19 } 20 #jquery-ui-sortable li span { 21 cursor: move; 22 position: absolute; 23 margin-top: 2px; 24 margin-left: 300px; 25 } 26 27 /* メニュー全体 */ 28 .menu { 29 width: 20rem; 30 } 31 32 /* チェックボックス非表示 */ 33 .menu input { 34 display: none; 35 } 36 37 .block { 38 display: block; 39 } 40 .none { 41 display: none; 42 } 43 44 /* 閉じた状態のサブメニュー */ 45 .menu ul { 46 background: #eee; 47 list-style: none; 48 margin: 0; 49 padding: 1rem; 50 } 51 52 /* 親項目の装飾 */ 53 .menu label { 54 display: inline-block; 55 margin: 0; 56 padding: 0.5rem; 57 background: #ddd; 58 cursor: pointer; 59 } 60 61 .menu label:hover { 62 background: #ccc; 63 } 64 </style> 65</head> 66 67<ul id="jquery-ui-sortable" class="menu"> 68 <div> 69 <label for="item1"></label> 70 <input type="checkbox" id="item1" name="check">ファイル1 71 </div> 72 <ul id="jquery-ui-sortable" class="none"> 73 <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s ui-corner-all ui-state-hover"></span>ファイル1</li> 74 <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s ui-corner-all ui-state-hover"></span>ファイル2</li> 75 <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s ui-corner-all ui-state-hover"></span>ファイル3</li> 76 </ul> 77 78 <div> 79 <label for="item2"></label> 80 <input type="checkbox" id="item2" name="check">ファイル2 81 </div> 82 <ul id="jquery-ui-sortable" class="none"> 83 <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s ui-corner-all ui-state-hover"></span>ファイル4</li> 84 <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s ui-corner-all ui-state-hover"></span>ファイル5</li> 85 <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s ui-corner-all ui-state-hover"></span>ファイル6</li> 86 <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s ui-corner-all ui-state-hover"></span>ファイル7</li> 87 </ul> 88 </ul> 89

javascript

1  $(function () { 2 $('#jquery-ui-sortable').sortable({ 3 handle: 'span', 4 cancel: '.stop'}); 5 }); 6 7 $(function(){ 8 $('[name="check"]').change(function(){ 9 if (!$(this).is(':checked')) { 10 $(this).parent().next().removeClass('block') 11 $(this).parent().next().addClass('none') 12 } else { 13 $(this).parent().next().addClass('block') 14 $(this).parent().next().removeClass('none') 15 } 16 }); 17 });

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問