使用 accept 选项进行拖放
说明
这是一个字符串或一个字符串数组,用于描述 CSS 类。可拖放元素仅接受具有一个或多个此类 CSS 类的可拖放元素。
语法
Droppables.add('element', {accept: 'cssClass'});
此处 cssClass 是一个 CSS 类和元素,只有具有该类的元素才会被拖放区接受。您可以指定一个 CSS 类数组。
示例
在此示例中,您将只能拖放具有"niceOne"CSS 类的图像。
<html>
<head>
<title>Drag and Drop Example</title>
<script type = "text/javascript" src = "/javascript/prototype.js"></script>
<script type = "text/javascript" src = "/javascript/scriptaculous.js"></script>
<script type = "text/javascript">
window.onload = function() {
// 使可拖动部分中的所有图像都变为可拖动图像。
$A($('draggables').getElementsByTagName('img')).each(function(item) {
new Draggable(item, {revert: true, ghosting: true});
});
Droppables.add('droparea',
{
hoverclass: 'hoverActive',
accept: 'niceOne',
onDrop: moveItem
}
);
// 默认设置放置区域为不清除。
$('droparea').cleared = false;
}
// 目标放置区域包含一段说明性文字
// ,当第一个项目
// 被放入其中时,我们想要删除这段文字。
function moveItem( draggable,droparea){
if (!droparea.cleared) {
droparea.innerHTML = '';
droparea.cleared = true;
}
draggable.parentNode.removeChild(draggable);
droparea.appendChild(draggable);
}
</script>
<style type = "text/css">
#draggables {
width: 172px;
border: 3px ridge blue;
float: left;
padding: 9px;
}
#droparea {
float: left;
margin-left: 16px;
width: 172px;
border: 3px ridge maroon;
text-align: center;
font-size: 24px;
padding: 9px;
float: left;
}
.hoverActive {
background-color: #ffffcc;
}
.niceOne {
border:10px dotted red;
}
#draggables img, #droparea img {
margin: 4px;
border:1px solid red;
}
</style>
</head>
<body>
<div id = "draggables">
<img class = "niceOne" src = "/images/html.gif"/>
<img src = "/images/css.gif" />
<img class="niceOne" src = "/images/xhtml.gif"/>
<img src = "/images/wml_logo.gif"/>
<img class="niceOne" src = "/images/javascript.gif"/>
</div>
<div id = "droparea">
Drag and Drop Your Images in this area
</div>
</body>
</html>
这将产生以下结果 −

scriptaculous_drag_drop.html