要素のコピーをドラッグしたい。
YAHOO.util.DDProxyを使うと、要素そのものでなく、要素のコピー(エイリアス?)をドラッグできるようになります。Windowsでファイルをドラッグした時のような感じです。
- ドラッグできるようにするだけであれば 「new YAHOO.util.DDProxy(<対象要素ID>)」でOK
- ドラッグする要素をカスタマイズすることもできます。
// 要素のコピーをドラッグ new YAHOO.util.DDProxy("drag"); // ドラッグする要素をカスタマイズして、ドラッグ中に中身を表示できるようにする。 // ドラッグする要素を明示的に指定し(指定しないとaと同じ要素が使われる) // startDragを再定義し、要素をカスタマイズする。 var b = new YAHOO.util.DDProxy("drag-with-content", "", {dragElId:"x"}); b.startDrag = function(x, y) { // ドラッグした要素,ドラッグする要素を取得 var dragEl = this.getDragEl(); var clickEl = this.getEl(); // 内容をコピー / スタイルは別途適用する必要がある。(TODO) dragEl.innerHTML = clickEl.innerHTML; }