
教えてください。
JQuery UIを使用してドラッグ&ドロップを作成しているのですが、
以下の動作が再現できず困っております。
[内容]
ドラッグ元:アイテムAとアイテムB
ドロップ先:ボックス1とボックス2
・アイテムAとアイテムBはボックス1とボックス2のいずれにもドロップできる。
・ただし、ボックス1またはボックス2は1つしかアイテムをドロップできない
※ボックス1にアイテムAがドロップされている場合、アイテムBをボックス1までドラッグしてもドロップができず、ボックス2にしかドロップできない。
イメージとしては、試験の穴埋め問題です。
一つの穴には一つの回答しか挿入できないようにしたいとお考えください。
現時点では、ボックス1にアイテムAがあってもアイテムBがその上に重なるようにドロップされてしまいます。
また、現在は簡易なパターンで作成していますが、ドラッグ元、ドロップ先が3つ、4つと増えた場合でも同様の制御を行いたいと考えています。
どうぞご教示ください。よろしくお願いいたします。
<script type="text/javascript">
$(function(){
//「.dragItem」をドラッグ
dragItem();
function dragItem(){
$('.dragItem').draggable({
revert:'invalid',
zIndex:'1000',
});
}
// 「.dropareaXX」にドロップされた時の処理
$('.droparea01,.droparea02').droppable({
accept: '.dragItem',
drop: function(ev, ui){
ui.draggable.prependTo(this).css({top:'0',left:'0'});
dragItem();
}
});
// 「#dragItemUI」にドロップ(元の場所に戻す)された時の処理
$('#dragItemUI').droppable({
accept: '.dragItem_drop',
});
dragItem();
});
</script>
</head>
<body>
<div id="dragItemUI">
<ul class="draglist">
<li class="dragItem dragItem_drop"><img src="img/dragitem_A.png"/></li>
<li class="dragItem dragItem_drop"><img src="img/dragitem_B.png"/></li>
</ul>
</div>
<div class="droparea01">ボックス1</div>
<div class="droparea02">ボックス2</div>
</body>
No.1ベストアンサー
- 回答日時:
UL-LIのインタフェースがちょっとおかしそうなので
以下のようにしてみました
<style>
.droparea{
border:solid 1px #000000;
float:left;
width:30%;
height:200px;
}
.imgover{
background-Color:lime;
}
</style>
<script src="jquery.min.js"></script>
<script src="jquery-ui.js"></script>
<script>
function modDroparea(){
$('.droparea').each(function(){
var me=$(this);
me.droppable({
"disabled":me.find('.dragItem').length>0 && me.hasClass("dropone"),
});
});
}
$(function(){
$('.dragItem').draggable({
"revert":'invalid',
"zIndex":'1000',
});
modDroparea();
$('.droparea').droppable({
"hoverClass":'imgover',
"accept": '.dragItem',
"drop": function(e, ui){
ui.draggable.prependTo(this).css({top:'0',left:'0'});
modDroparea();
},
});
});
</script>
<div class="droparea">複数おける
<img class="dragItem" src="1.jpg"/></li>
<img class="dragItem" src="2.jpg"/></li>
</div>
<div class="droparea dropone">ひとつだけ</div>
<img class="dragItem" src="3.jpg"/></li>
<div class="droparea dropone">ひとつだけ
</div>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SeesaaブログにBlogPeople (...
-
FC2カテゴリ親文字だけ大きく、...
-
困っています!!
-
<EMBED>は使わないほうがよいの...
-
HP作成/広告表示について
-
CSSについてです。
-
JQuery UIを使用したドラッグ&...
-
背景画像
-
スクリプト同士がケンカ?
-
firefoxでdivタグの体裁崩れ
-
youtubeの動画をポップアップで...
-
HTML・CSSの記述について
-
背景画像がつられてのびていく...
-
IEだけfloatがずれてしまう
-
マウスオーバーのメニューについて
-
HPデザインについて
-
CSS:floatを使っての段組で困...
-
スマートフォンで適切に見られ...
-
プルダウンメニューが設置でき...
-
CSSで背景画像が表示されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スタイルシートで画面を上下に...
-
【CSS】floatで左右に並べた...
-
チェックボックスの背景色って...
-
CSS <div>の入れ子が反映さ...
-
HTMLですCSSです 画像のように...
-
CSSで背景を下までのばすには?
-
CSS のみのタブ切り替えについて
-
離れた場所にマウスオーバーで...
-
スクロール可能なチェックボックス
-
htmlのstyleのposition:relativ...
-
文字をクリックしたら別の文字...
-
スタイルシート(CSS)で、高さ...
-
行間
-
Ctrl+F(検索)の窓を出したいの...
-
CSSでフローとした際の親要素の...
-
CSSで(3)段組のページを作り...
-
html スクロール要素を下から表...
-
IE6のレイアウト崩れ
-
CSSでdivのheightを動的に
-
フッター上部に謎の隙間
おすすめ情報