01 <div dojoType="dojo.dnd.Source" class="tundra" style="width:800px">
02 <div name="myform" id="myform" class="dojoDndItem">
03 金額:<input type="text" dojoType="dijit.form.NumberTextBox" id="name"></input>
04 <button dojoType="dijit.form.Button" onClick="callRemote();">
05 <span style="font-size:8pt">確定</span></button>
06 </div>
07 <div id="textBox" class="dojoDndItem"></div>
08 </div>
輸入區塊由第 02-06 行代表,而輸出區塊由第 07 行代表。從 DOM 的角度看,
也就是說代表整個區域的 div 是一個父節點,這個節點有兩個子節點,其 id
分別是 myform 和 textBox。在 XML 的學習中,我們知道兩個子節點是兄弟關係
(sibling)而且有順序性;也就是說,myform 是 div 的第一個子節點,textBox
是 div 的第二個子節點。這樣的樹狀結構就解釋了為什麼紅色虛線會出現在 drop
區塊的左邊或者右邊:出現在左邊,代表要把拖曳的區塊放置於 drop 區塊的
前一個節點;若出現在右邊,代表把拖曳的區塊放置於 drop 區塊的下一個節點。
因此,把輸入區塊(順序是 1)drop 到輸出區塊(順序是 2)的時候,紅色虛線
出現在輸出區塊的左邊,就是代表要把輸入區塊放置到輸出區塊的前一個節點,
可是順序 2 的之前就是 1,所以兩個區塊不會對調。可是,如果紅色虛線出現
在輸出區塊的右邊,就是代表要把輸入區塊放置到輸出區塊的下一個節點,也
就是順序變成 3;因為第一個節點(輸入區塊)被搬到最後一個節點,所以
輸出區塊的順序變成 1,而輸入區塊變成 2,這樣一來,兩個區塊就有了
對調的效果。