Javascript получить родительский Div на начало перетаскивания - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь получить текст Urgent Doing при перетаскивании div class="Card-Container". Я уже получил идентификатор правильно (через JS), но я не уверен, как получить значение класса, который является родительским для Card-Container. Я пробовал это SO-решение , но не мог понять, как заставить его правильно связать функцию drag_start.

Чтобы увидеть вывод, перетащите черное поле заголовка

    function drag_start(ev) {
        var cardid = ev.target.id;
        var classtext = $('#'+cardid).parents("div").prev().text();//$(cardid).parents("div").prev().text()
        ev.dataTransfer.setData("elem_id", cardid);
        ev.dataTransfer.setData("div_from_classname", classtext);//Lane-Title-2
        console.log("picked up card: " + cardid + " from div classname: " + classtext);
    }
    <html>
    <head></head>
    <body>
    
    <div class="Lane-Container-2">
      <div class="Lane-Title-2">Urgent Doing</div>
      <div class="Lane-Area-2">
                <div class="Card-Container" draggable="true" ondragstart="drag_start(event)" id="11111">
                <div class="Card-Title" style="background-color: black; border-color: black;" onclick="">xxx</div>
                <div class="Card-Body" style="background-color:@i.TypeColorHex; border-color: @i.TypeColorHex;">yyy</div>
            </div>
      </div>
    </div>  

    <div class="Lane-Container-2">
      <div class="Lane-Title-2">2.....Urgent Doing</div>
      <div class="Lane-Area-2">
                <div class="Card-Container" draggable="true" ondragstart="drag_start(event)" id="22222">
                <div class="Card-Title" style="background-color: black; border-color: black;" onclick="">xxx</div>
                <div class="Card-Body" style="background-color:@i.TypeColorHex; border-color: @i.TypeColorHex;">yyy</div>
            </div>
      </div>
    </div>  
    </body>

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Попробуй так:

....
ev.dataTransfer.setData("div_from_classname", $(this).parent().className);
....
0 голосов
/ 06 мая 2018

Вы можете использовать $(".Card-Container").parents("div").prev().text(), чтобы получить требуемый текст div

console.log($(".Card-Container").parents("div").prev().text())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<div class="Lane-Container-2">
  <div class="Lane-Title-2">Urgent Doing</div>
  <div class="Lane-Area-2">
            <div class="Card-Container" draggable="true" ondragstart="drag_start(event)" id="@i.Id">
            <div class="Card-Title" style="background-color: black; border-color: black;" onclick="">xxx</div>
            <div class="Card-Body" style="background-color:@i.TypeColorHex; border-color: @i.TypeColorHex;">yyy</div>
        </div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...