簡體   English   中英

Dojo 拖放:如何格式化放置的項目?

[英]Dojo Drag and drop: how to format a dropped item?

我正在使用 Dojo 嘗試使用 dojo 的 dnd 構建應用程序。 我環顧四周尋找這個問題的答案,但我不確定如何實現這一點。 我有一個 Source 對象,其中有一堆以某種方式用 html/css 格式化的產品。 當我將這些對象拖到我的 Target 對象上時,放置的項目看起來仍然和以前一樣。 我想在被刪除后以不同的方式對其進行格式化。 任何想法如何做到這一點?

您可以通過將creator函數 ref 傳遞給您的 Source 對象來完成此操作。

假設您有 dojo 1.3 並且可以使用dojo.create.

在你的 JS 中:

function myCreator( item, hint ) {
   var myDiv = dojo.create( 'div', { innerHTML: item.name });

   if (hint == 'avatar') {
      // create your avatar if you want
      myDiv.innerHTML = 'I'm an avator of ' + item.name;
   }
   return {node: myDiv, data: item, type: item.type};
}

然后在您的 HTML(div 或其他)中:

<div dojoType="dojo.dnd.Source" creator="myCreator"></div>

如果您想以編程方式創建Source項目,只需像這樣傳入創建者:

var dnd = new dojo.dnd.Source(someNode, { creator: myCreator });

我在上面的例子中使用了item.name 這一切都取決於您的項目,因此您可能想要使用不同的字段。

SitePen 博客上提供創建dojo.dnd頁面的出色dojo.dnd

topic.subscribe("/dnd/drop", function(source, nodes, copy, target) {

    target.forInSelectedItems(function(item, id) {
        //alert(document.getElementById(id));
        if (document.getElementById(id).innerHTML == "something from your source") {
            //create what you want, and add it to id
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM