нежелательный побочный эффект от эффекта перетаскивания - PullRequest
0 голосов
/ 27 сентября 2019

Я использовал CSS, чтобы создать несколько круговых текстовых элементов и позволить пользователям перетаскивать элементы между несколькими элементами div.Набор Javascript Кроме того, я мог перетаскивать окружность в разные элементы div, я также мог перетаскивать текст окружности на другой текст окружности, который мне вообще не нужен.Я не установил allowdrop для круга-текста, я не знаю, как этого избежать

, когда я помещаю круг-текст № 10 в эту вкладку, он отлично работает

Когда я случайно положил круговой текст № 13 на № 10, он придерживается, и вы видите, что его код теперь находится под круговым текстом № 10

И это дает мне такую ​​ошибку

Я подумал, связано ли это со свойствами div1, применяемыми ко всем элементам под ним;тем не менее, я не уверен, что это правильно.

Я также подумал о корнях этой проблемы из этого кода ev.target.appendChild (document.getElementById (data)) Но данные, которые я установил, представляют собой текст, которыйявляется идентификатором цели, и я не думаю, что он возвращает нулевое значение.

Кто-нибудь знает, почему это происходит и как решить?Я только начинающий и извиняюсь, если вопрос глупый.Заранее спасибо!

Javascript

<script>
function allowDrop(ev) {
ev.preventDefault();
}


function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}

function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>

CSS

    .circle-text {
    display: table-cell;
    height: 30px;
    width: 30px;
    text-align: center;
    vertical-align: middle;
    border-radius: 45%;
    background: #000;
    color: #fff;
    font: 20px "josefin sans";
    float:left;

.div1 {
    position:relative;
    width: 25%;
    height: 100%;
    align-items:flex-start;
    float:left;
    border:1px solid black;
    box-sizing: content-box;
    word-wrap:break-word;
    text-overflow: clip;
    white-space: normal;
}

HTML

<div id="bmhipnotfit" class="div1" ondrop="drop(event)" 
ondragover="allowDrop(event)">
    <div class="circle-text" draggable="true" ondragstart="drag(event)" 
    id="drag1">1</div>
    <div class="circle-text" draggable="true" ondragstart="drag(event)" 
    id="drag3">3</div>
</div>
<div id="bfhipnotfit" class="div1" ondrop="drop(event)" 
ondragover="allowDrop(event)"></div>
<div id="cmhipnotfit" class="div1" ondrop="drop(event)" 
ondragover="allowDrop(event)">
    <div class="circle-text" draggable="true" ondragstart="drag(event)" 
    id="drag4">4</div>
    <div class="circle-text" draggable="true" ondragstart="drag(event)" 
    id="drag5">5</div>
    <div class="circle-text" draggable="true" ondragstart="drag(event)" 
    id="drag6">6</div></div>
<div id="cfhipnotfit" class="div1" ondrop="drop(event)" 
ondragover="allowDrop(event)"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...