基本上我想擴展這個YUI的例子/演示,這樣就不需要有一個單獨的「目標」框,當元素被拖入它時,它會被更新,我有幾個目標框可供選擇。官方雅虎的例子可以在 http://developer.yahoo.com/yui/3/examples/dd/delegate-drop.html使用YUI dragdrop插件實現多個放置目標?
找到相關代碼:
<div id="play">
<div id="demo">
<ul>
<li>Item #1</li>
<li>Item #2</li>
<li>Item #3</li>
<li>Item #4</li>
<li>Item #5</li>
<li>Item #6</li>
<li>Item #7</li>
<li>Item #8</li>
<li>Item #9</li>
<li>Item #10</li>
</ul>
</div>
<div id="drop">Drop on me</div>
</div>
<script>
YUI({ filter: 'raw' }).use('dd-delegate', 'dd-drop-plugin', function(Y) {
var del = new Y.DD.Delegate({
container: '#demo',
nodes: 'li'
});
del.on('drag:end', function(e) {
del.get('currentNode').setStyles({
top: 0,
left: 0
});
});
var drop = Y.one('#drop').plug(Y.Plugin.Drop);
drop.drop.on('drop:hit', function(e) {
drop.set('innerHTML', 'You dropped: <strong>' + e.drag.get('node').get('innerHTML') + '</strong>');
});
});
</script>
我一直在試圖建立這樣的日子,但有太多的因素,我不明白。我做的一件事是編寫一個循環,循環遍歷每個目標框,並執行'var drop = Y.one ...'等的綁定,但結果是無論我拖入哪個框,只有最後一個一個會更新(因爲與Javascript關閉有關的事情我認爲)
編輯:忘了說,我需要YUI應用拖放功能,然而很多目標發生在'目標容器'內,類似於拖動元素如何設置。我不能硬連接每個div,因爲我沒有預先提供多少個div。