перетаскиваемый div перетаскивается при использовании ползунка диапазона ввода

#javascript #html #css

#javascript #HTML #css

Вопрос:

У меня есть перетаскиваемый div, который можно перетащить и поместить в другую позицию списка. Внутри этого div я использовал диапазон ввода. Когда я сдвигаю этот диапазон, мой div также перетаскивается.Я пытался использовать stopPropagation для своего диапазона, но я не препятствовал перетаскиванию моего div при использовании ползунка диапазона.

Это мой общий div, который можно перетаскивать, и внутри этого div используется ползунок диапазона ввода

 <li class="column" draggable="true" id="{{layer.alternate|slice:'8:'}}">
   <div class="inserted-card noprint" style="padding: 1rem" id="{{layer.title|cut:" "}}">
   <div class="layer-card">
      <div class="pt-3 d-flex justify-content-end"
         style="width: 100%;text-align: right;">
         <div style="padding: 1rem; display: flex;justify-content: space-between">
            <h4 class="mr-4 base-layer-title">Opacity </h4>
            <input type="range" name="yearInputName" onchange="changeOpacity({{layer.alternate|slice:'8:'}},{{layer.title|cut:" "}})"
            id="opacity{{layer.alternate|slice:'8:'}}" value="100" min="0" max="100">
         </div>
      </div>
   </div>
   </div>
</li>
  

CSS для перетаскиваемого div

 [draggable] {
    -moz-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    user-select: none;
    /* Required to make elements draggable in old WebKit */
    -khtml-user-drag: element;
    -webkit-user-drag: element;
  }
  
  #columns {
    list-style-type: none;
  }
  
  .column {
    width: 100%;
    padding-bottom: 5px;
    padding-top: 5px;
    text-align: center;
    cursor: move;
  }
  .column.dragElem {
    opacity: 1;
  }
  .column.over {
    /* border: 2px dashed #000; */
    border-top: 2px solid blue;
  }
  

Комментарии:

1. попробуйте с stopImmediatePropagation помощью .

Ответ №1:

Попробуйте получить точку из этого псевдокода.

 draggableElement.onclick = (event)=> {
     if(event.target == rangeInputElement)
        draggableElement.draggable = false;
     else
        draggableElement.draggable = true; 
 }