1

여러 항목을 드래그하여 특정 div에 놓으면 첫 번째 요소 만 가져옵니다. 내가 CONSOLE.LOG 체크하면 나중에 ($ (ui.draggable)) 길이는 1jquery의 요소를 끌기

({selector:"", context:#1=({}), 0:#1#, length:1}) when i dragged 3 elements 

내가 잘못 갈 곳 도와주세요이었다?

http://jsfiddle.net/akkiys/Hkfh2/4/

은 HTML은 다음과 같습니다

<ul id="drag" > 
    <li id="1">one</li> 
    <li id="2">two</li>  
    <li id="3">three</li> 
    <li id="4">four</li> 
    <li id="5">five</li>   
</ul> 

및 자바 스크립트 :이 질문은 생성 이후되었습니다 년 이후 멸종 한 경우 몰라요

var selectedClass = 'ui-state-highlight', 
    clickDelay = 600, 
    // click time (milliseconds) 
    lastClick, diffClick; // timestamps 
$("#drag li") 
// Script to deferentiate a click from a mousedown for drag event 
.bind('mousedown mouseup', function(e) { 
    if (e.type == "mousedown") { 
     lastClick = e.timeStamp; // get mousedown time 
    } else { 
     diffClick = e.timeStamp - lastClick; 
     if (diffClick < clickDelay) { 
      // add selected class to group draggable objects 
      $(this).toggleClass(selectedClass); 
     } 
    } 
}).draggable({ 
    scroll: false, 
    revertDuration: 10, 
    // grouped items animate separately, so leave this number low 
    start: function(e, ui) { 
     ui.helper.addClass(selectedClass); 
    }, 
    stop: function(e, ui) { 
     // reset group positions 
     $('.' + selectedClass).css({ 
      top: 0, 
      left: 0 
     }); 
    }, 
    drag: function(e, ui) { 
     // set selected group position to main dragged object 
     // this works because the position is relative to the starting position 
     $('.' + selectedClass).css({ 
      top: ui.position.top, 
      left: ui.position.left 
     }); 


    } 
}); 

$(".drop").droppable({ 


    drop: function(event, ui) { 


     var droppableId = $(this).find('div.inner').attr("id"); 

     //var id = ui.draggable.attr("id"); // i need to retrive multiple id 
     console.log($(ui.draggable)) 
     var m_id = []; 

     $.each($(ui.draggable), function(i, e) { 
      m_id.push(e.id); 
      alert(m_id); 
     }); 
     console.log(m_id); 


    } 
}); 
+1

당신의 jsFiddle, 크롬, 나는 내가 끌어 얼마나 많은 말 경고를 받고, 그것을 올바른 번호를 말합니다. 그것은 당신이보고있는 것이 아닙니까? – Grezzo

+0

@Grezzo 여러 항목을 드래그하여 확인하십시오. 내가 끌었던 모든 다중 값이 필요합니다. 나는 당신의 끌고 다니는 단일 품목이라고 생각합니다. – Akshay

+0

"여러 항목 드래그"란 무엇을 의미합니까? 나가자 마자, 그들은 그들이 있던 곳으로 되돌아갑니다. 정확한 단계와 제공되는 정보를 각 단계에서 확인하십시오. – Grezzo

답변

0

그리고 최근의 기부금 그러나 나는 단지 그것으로 비틀 거 렸고, Id는이 물건에 대한 총 초보자 임에도 불구하고 공헌하려고 노력했다. 바라건대 누군가 그것을 활용할 수 있기를 바랍니다.

기본적으로 볼 수있는 것은 클래스 ('.'+ selectedClass)를 사용하여 모든 요소를 ​​드래그하므로 드롭 이벤트에서도 동일한 항목을 확인해야합니다.

그 이유는 실제로 여러 항목을 'jquery-dragging'하지 않는다는 것입니다. jquery가 요소를 실제로 드래그하는 요소 주위에서 한꺼번에 요소 주위를 이동하여 시각적으로 시뮬레이션하는 것입니다. 검사를 통해 바이올린을 실행하면 모든 목록 요소에 대해 선택한 클래스 토글이 의도적으로 표시되지만 드래그를 시작하면 jquery에서 사용하는 .ui 드래그 가능한 드래그 클래스가 하나의 요소에만 포함됩니다.

그냥 selectedClass에 드롭 examplecode에 식별자를 변경하여 여러 아이디의, 예를 찾을 수있게됩니다 : 사용

$.each($("."+ selectedClass), function(i, e) { 
m_id.push(e.id); 
alert(m_id); 
}); 
관련 문제