【发布时间】:2011-06-13 19:17:29
【问题描述】:
您好,我正在尝试在项目中实现一些拖放功能,但在某些方面遇到了一些困难。我遇到的问题之一是创建自定义头像,我能够实现自定义头像,但必须稍微作弊并使用 CSS 隐藏一些元素。
下面是我的代码的 sn-p 不是整个代码,我需要所有必要的包等。
dojo.query(".canDrag").forEach(function(node, index, nodelist){
var createSource = new dojo.dnd.Source(
node, {copyOnly: true, creator: createAvatar}
);
function createAvatar(item, hint) {
var node = dojo.doc.createElement("span");
dojo.addClass(node, "avatarStyle");
if ( hint == "avatar" ) {
var dHtml = item;
console.log("trying " + dHtml);
node.innerHTML = item;
}
else {
console.log("if this show remove redudant call");
}
return {node: node, data: item, type: "product", copyOnly: true};
};
好的,如您所见,我创建了我的 DnD 源,然后给它一个自定义创建者,我尝试在其中构建我自己的自定义 Avatar。实际可拖动标记如下:
<div class="canDrag panelLeft">
<div class="dojoDndItem" dndType="product" title="digitalCamera" id="12345">
<h3 class="productTitle"><a href="">Samsung ES71</a></h3>
<p class="productType">Compact Digital Camera</p>
<img src="img/small_Cam.png" class="imgLMargin" alt="Samsung ES71"/>
<div class="dragHandle">
</div>
</div>
</div>
我不想从 canDrag 和 down 中追加整个 div,我想抓取不同的元素,例如图像和 .product 标题,然后只显示它们。如果有人有任何想法,我提前感谢你,如果我的问题不够清楚,我可以尝试改写。
干杯
【问题讨论】:
-
“而不是追加...”是什么意思?
-
我使用 innerHTML 将变量 'item' 附加到节点,而不是这样做,我想在 'item' 中选择不同的元素并将它们添加到头像。
标签: javascript drag-and-drop dojo dojo-dnd