使用 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>
这将产生以下结果 −