2010-01-19 39 views
0

我需要調用一個函數來改變之前創建的dnd.source接受。任何想法如何改變現有的dojo.dnd.source將是非常好的。代碼我用來創建:如何獲得/設置接受dojo.dnd.source

var catalog = new dojo.dnd.Source('div_catalog', { accept: ['inStock'] }); 

對不起,我的英語,我還在學習。再次感謝。

回答

0

我發現了另一種解決問題的方法,但效果並不好。我只是刪除了包含dnd.sourcediv,並創建了一個具有不同接受度的新dnd.source。該代碼我使用:

var element = dojo.byId(user_id);<br /> 
var element_father = element.parentNode;<br /> 
element_father.removeChild(element);<br /> 
var div = document.createElement("div");<br /> 
div.setAttribute('id',element.id);<br /> 
element_father.appendChild(div);<br />   
var catalog = new dojo.dnd.Source(element.id, {accept: ['outStock']}); 

我希望有人知道如何建立一個存在dnd.source

+0

你試過catalog.accept = ['otherValue']嗎?我沒有檢查...只是猜測... – Philippe 2011-02-23 17:15:28

2

我跟這個身邊打球,我發現了「接受」屬性似乎不是一個陣列作爲道場手冊建議。它在chrome的調試器中顯示爲某種對象(除數組外),默認情況下該屬性被稱爲「文本」,其值設置爲1。訪問爲element.accept = "";禁用它的作品,但在此之後,不會再回到使用相同的方法啓用它,並嘗試類似element.accept = ['text'];我也嘗試訪問它element.accept.text並且這似乎並沒有工作要麼一旦對象被實例化。

對於我的應用程序,我需要允許單個項目在表中的每個td中,並且我使用以下函數來執行此操作,並使用列出的變體保留表中項目的順序這裏。我認爲這值得一提。

function changeAccept(source) 
{ 
    var element = document.getElementById(source.node.id); 
    console.log("element:"+element); 
    var element_father = element.parentNode; 
    var td = document.createElement("td"); 
    td.setAttribute('id',element.id); 
    element_father.replaceChild(td,element); 

    var newsource = new dojo.dnd.Source(element.id, {accept: ['text']}); 

    dojo.connect(newsource, "onDrop", function(source, nodes, copy) { 
     console.log("Dropped", newsource, source, nodes, copy); 
     newsource.accept = ""; 
     changeAccept(source); 
    }); 

    return newsource; 
} 

var priorelement = new dojo.dnd.Source(element.id, {accept: ''}); //disabled 
changeAccept(priorelement); //enabled and in same position in table 
1

我面臨同樣的問題,我找到了解決辦法。事實上這很容易:

var source = new dojo.dnd.Source(「divId」,{accept:[]}); //我們可以使用 也dojo.dnd.AutoSource

現在創建的源碼不會接受任何東西。要更改接受我們必須添加一個屬性到它的接受場這樣的:

source.accept["acceptType"] = 1; 

而且同樣將其刪除:

delete source.accept["acceptType"]; 

我希望這會幫助別人。