У меня есть код, в котором есть dragitem1 и dropitem1,
Dragitem1 можно перетащить на Dropitem1,
Моя проблема находится на droppingDragitem1, и wantdragitem1 width to be 100%on dropped area(внутри Dropitem1).
для этого я использовал
assignedTabName[0].style.width = "100%";
но не дал ожидаемого результата.
Как сделать dragitem1 со 100% выпадающей областью (после выпадения)?
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");
console.info(data);
assignedTabName = document.getElementById(data).className;
console.info(assignedTabName);
ev.target.appendChild(document.getElementById(data));
assignedTabName[0].style.width = "100%";
}.dragitem1{
border:2px solid black;
width: calc(16.3% - 4px);
height:80%;
margin-left:0.5%;
margin-top:0.5%;
margin-right:0.5%;
background-color:#2ecc71;
}
.dropitem1{
border:2px solid black;
position:fixed;
width:23vw;
height:10vh;
left:30vw;
bottom:80vh;}<div class = "dragitem1" draggable = "true" ondragstart = "drag(event)" id = "drag1">
<p id = "p1">TEST</p>
</div>
<div class = "dropitem1" ondrop = "drop(event)" ondragover = "allowDrop(event)" id = "drop1">
</div>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Замените assignedTabName[0] на document.getElementById(data), вы пытаетесь установить стиль для строки
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");
console.info(data);
assignedTabName = document.getElementById(data).className;
console.info(assignedTabName);
ev.target.appendChild(document.getElementById(data));
document.getElementById(data).style.width = "100%";
}.dragitem1{
border:2px solid black;
width: calc(16.3% - 4px);
height:80%;
margin-left:0.5%;
margin-top:0.5%;
margin-right:0.5%;
background-color:#2ecc71;
}
.dropitem1{
border:2px solid black;
position:fixed;
width:23vw;
height:10vh;
left:30vw;
bottom:80vh;}<div class = "dragitem1" draggable = "true" ondragstart = "drag(event)" id = "drag1">
<p id = "p1">TEST</p>
</div>
<div class = "dropitem1" ondrop = "drop(event)" ondragover = "allowDrop(event)" id = "drop1">
</div>Вы обращаетесь к первому символу имени класса с помощью assignedTabName[0]. Получите элемент один раз и сохраните его в переменной, проверьте его существование, затем измените стиль и добавьте его.
function drop(event) {
event.preventDefault();
const id = event.dataTransfer.getData("text");
const element = document.getElementById(id);
if (element) {
element.style.width = "100%";
event.target.appendChild(element);
assignedTabName = element.className;
}
}
Это должен быть ваш код для падение функции()
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
console.info(data);
assignedTabName = document.getElementById(data);
console.info(assignedTabName.className);
ev.target.appendChild(assignedTabName);
assignedTabName.style.width = "100%";
}