我正在尝试开发一个具有以下功能的小页面:
- 页面将有两个 div:一个是#origin,包含很多缩略图,第二个是#drop,可以放置图像(最多 3 个)。
- 需要能够将图像从#drop 拖放回原点。
- #drop 需要可排序,因为 3 个选定图像的顺序很重要。
- 当放置在#drop 上时,图像应该对齐,就好像它们从一开始就是这样显示的。
我以前从未使用过 jQuery,我什至有一个工作页面原型,我已经通过原生 HTML5 拖放事件在两个容器之间进行拖放,但是当我将 sortable() jquery 功能添加到 #drop 时,图像无法再拖回#origin,这破坏了我的功能。
所以,我重新开始,想用 jQuery 实现拖放功能和可排序功能。我已经阅读了几乎所有可拖动、可放置和可排序功能的整个 API,但我无法让它工作。不确定这是否是我为每个功能使用的设置。
在小提琴上,您可以看到图像变得可拖动,并且我可以看到我指定的有效设置(不透明度、光标),但图像无法在#drop 上拖放。
据我了解,使图像可拖动、图像具有“可拖动”类以及使#drop droppable 接受“.draggable”的组合,它应该允许最基本的功能,但即使这样似乎也没有采取。另外我读到,如果可拖动和可放置都具有相同的“范围”设置,它也应该可以工作,但事实并非如此。
这是页面代码的简单版本,加上一个 jsFiddle:http: //jsfiddle.net/39khs/
代码:
CSS:
#origin {
background-color: green;
}
#drop {
background-color: red;
min-height: 120px;
}
js:
$("img").draggable({ helper: "clone", opacity: 0.5, cursor: "crosshair", scope: "drop" });
$("#drop").droppable({ accept: ".draggable", scope: "drop"});
$("#drop").sortable();
html:
<div id="wrapper">
<div id="origin" class="fbox">
<img src="http://placehold.it/140x100" id="one" title="one" class="draggable" />
<img src="http://placehold.it/140x100" id="two" title="two" class="draggable" />
<img src="http://placehold.it/140x100" id="three" title="three" class="draggable" />
</div>
<p>test</p>
<div id="drop" class="fbox">
</div>
</div>
任何帮助是极大的赞赏。