2014-02-19 6 views
0

Я хочу разрешить перетаскивание в неупорядоченный список html. Решение, которое я нашел, описано здесь: http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_draganddrop2Как перетащить и перетащить в неупорядоченный список html

Но, кажется, мне нужно указать идентификатор для каждого элемента моего списка (li), можно ли перетащить его без использования идентификатора?

Также в этом решении кажется, что я могу перетащить li внутри другого, как я могу предотвратить это?

Вот пример того, что у меня есть сейчас (Javascript):

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

function allowDrop(ev) { 
    ev.preventDefault(); 
} 

function drop(ev) { 
    ev.preventDefault(); 
    var data = ev.dataTransfer.getData("Text"); 
    ev.target.appendChild(document.getElementById(data)); 
} 

[EDIT] Вот HTML уль:

<ul id="members-list" ondragover="allowDrop(event)" 
    ondrop="drop(event)"> 
    <li id="drag1" class="group-member" 
     ondragstart="drag(event)" 
     draggable="true"> 
     <a href=""> 
     <img class="member-photo" 
      src="images/a.jpg" 
      alt="Bernardo Figueiredo"/> 
     <div class="member-info"> 
      <p>bla</p> 
      <p>blabla</p> 
     </div> 
     </a> 
    </li> 
    <!-- Other li --> 
</ul> 
+0

Большое спасибо (не думая об этом). –

ответ

3

Вы можете использовать глобальную переменную, сохраните его к этой переменной в drag(), то доступ к нему в drop()

var elem; 

function allowDrop(ev) { 
    ev.preventDefault(); 
} 

function drag(ev) { 
    ev.dataTransfer.setData("Text", ev.target.id); 
    elem = ev.target; 
} 

function drop(ev) { 
    ev.preventDefault(); 
    var data = ev.dataTransfer.getData("Text"); 
    ev.target.appendChild(elem); 
}  

Demo

+0

Спасибо! Кстати, как я могу предотвратить перетаскивание внутри других ли списков? –

+0

@ LuisAlves Удалите событие ondrop из тега. [** Demo **] (http://jsfiddle.net/Zeaklous/p3k2A/1/) –

+0

Да, но у меня есть событие ondrop на теге ul. (Я перередактирую свой пост с частью html) –

Смежные вопросы