所以,我有一個div內的div並且都是可拖動的。 當我試圖拖動孩子時,它只拖動父母。其他可拖動元素內的可拖動元素父項隱藏的事件
就好像父母掩蓋了孩子。
我嘗試在child的事件監聽器中將useCapture設置爲true,因爲這應該強制首先調用子事件。然後在handleDragStart方法中,我調用stopPropogation(),希望它能取代父事件。沒有骰子...
(例如代碼,因爲它需要的jsfiddle鏈接出於某種原因)
var parentPiece = document.createElement('div');
parentPiece.setAttribute('draggable', true);
parentPiece.addEventListener('dragstart', handleDragStart, false);
...
var childPiece = document.createElement('div');
childPiece.setAttribute('draggable', true);
childPiece.addEventListener('dragstart', handleDragStart, true);
...
function handleDragStart(e) {
console.log(this.outerHTML);
e.dataTransfer.effectAllowed = 'move';
e.stopPropagation();
}
這裏是我的jsfiddle。我爲這個爛攤子道歉,第一次嘗試做拖放。
您應該能夠從底部拖動元素到線條和藍色方塊中。行中的元素應該可以拖動到其他行中。問題在於可拖動元素放置在藍色方塊中,它拖動了整條線而不是被點擊的孩子。
我可能會錯過像CSS規則那樣真正愚蠢的東西。 > _ <
我打算使用任何庫來使這個清潔/更可維護。
任何幫助是非常感謝,而我試圖學習這一點。
謝謝!