教えてください。
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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Flickity で画像にリンクを貼る...
-
Ctrl+F(検索)の窓を出したいの...
-
ヘッダとフッタが固定でコンテ...
-
textareaで入力した文字を改行...
-
文字を固定したいのですが…
-
【CSS】floatで左右に並べた...
-
MAX関数を使ってからLEFT JOIN...
-
c++std::string型をTCHARに変換...
-
複数画像のランダム複数表示(...
-
JSPでの画像ファイル表示
-
ページの上下に同じタブメニュ...
-
jQueryでサーバー上のファイル...
-
キャラクターがぴょこんと飛び...
-
jqueryのプラグインslickの画像...
-
bxsliderにて読み込み後に内容...
-
デフォルト非表示にしたい。【t...
-
テキストボックスに入力された...
-
条件分岐でキーが入力されてい...
-
変数内容をHTML内で表示する方法
-
eclipseでcssを使うためには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フッター上部に謎の隙間
-
CSS <div>の入れ子が反映さ...
-
オンマウス時に別画像を上に重...
-
Ctrl+F(検索)の窓を出したいの...
-
スタイルシートで画面を上下に...
-
JQuery UIを使用したドラッグ&...
-
スクロール可能なチェックボックス
-
floatさせたdivタグを折り返さ...
-
文字を固定したいのですが…
-
TABLEの高さを固定したいのですが…
-
【CSS】floatで左右に並べた...
-
youtubeをHPに載せたいです。
-
すいません、このタグですが、...
-
スライダーの枠に動画を収める...
-
メニューやヘッダー背景だけを...
-
リンクで違うページの指定箇所...
-
【html5】canvasでの文字の形の...
-
CSSを使って3カラムにしたいの...
-
positionのrelativeとabsolute...
-
左○○px、右は残りの幅(100%-左...
おすすめ情報