diff --git a/public/js/buildings/1v1.js b/public/js/buildings/1v1.js
index 116fcaf..0488a57 100644
--- a/public/js/buildings/1v1.js
+++ b/public/js/buildings/1v1.js
@@ -339,7 +339,7 @@ function renderCardOnBoard(slotEl, card, owner) {
slotEl.classList.add('slot-occupied');
applyOwnerStyle(slotEl, owner);
slotEl.innerHTML = card.image
- ? `
${statsHtml}`
+ ? `
${statsHtml}`
: `
\u2694\uFE0F${card.name}
${statsHtml}`;
}
@@ -694,36 +694,39 @@ function enableBoardDrag() {
if (!isMyZone(idx)) return;
if (!boardState[slot.id]) return;
if (boardState[slot.id].owner !== mySlot) return;
-
slot.classList.add('board-slot-draggable');
slot.setAttribute('draggable', 'true');
-
- // Event-Listener nur einmal anhängen
- if (!slot.dataset.discardListenerAttached) {
- slot.dataset.discardListenerAttached = '1';
- slot.addEventListener('dragstart', e => {
- if (!isMyTurn) { e.preventDefault(); return; }
- draggedBoardSlotId = slot.id;
- slot.classList.add('dragging');
- e.dataTransfer.effectAllowed = 'move';
- e.dataTransfer.setData('text/board', slot.id);
- });
- slot.addEventListener('dragend', () => {
- slot.classList.remove('dragging');
- draggedBoardSlotId = null;
- discardZone.classList.remove('drag-over');
- });
- }
});
}
function disableBoardDrag() {
document.querySelectorAll('.board-slot-draggable').forEach(slot => {
- slot.classList.remove('board-slot-draggable');
+ slot.classList.remove('board-slot-draggable', 'dragging');
slot.setAttribute('draggable', 'false');
});
}
+/* ── Board-Drag via Event-Delegation auf den Rows ────────── */
+['row1', 'row2'].forEach(rowId => {
+ const row = document.getElementById(rowId);
+
+ row.addEventListener('dragstart', e => {
+ const slot = e.target.closest('.board-slot-draggable');
+ if (!slot || !isMyTurn) { e.preventDefault(); return; }
+ draggedBoardSlotId = slot.id;
+ slot.classList.add('dragging');
+ e.dataTransfer.effectAllowed = 'move';
+ e.dataTransfer.setData('text/board', slot.id);
+ });
+
+ row.addEventListener('dragend', e => {
+ const slot = e.target.closest('.board-slot-draggable');
+ if (slot) slot.classList.remove('dragging');
+ draggedBoardSlotId = null;
+ discardZone.classList.remove('drag-over');
+ });
+});
+
/* ── Karte abwerfen ──────────────────────────────────────── */
function discardBoardCard(slotId) {
const entry = boardState[slotId];