2010-08-08 3 views
0

Jquery를 사용하여 끌어서 놓기 단계를 만들려고하고 있는데, 내가 droppable 상자 안에 단 하나의 항목 만 원하는 문제가 있습니다. 하지만 지금은 그 안에 여러 항목을 추가하고 있습니다. 여기 내 코드가있다.Jquery Droabble Box Limit

$("#item_list_2").droppable({ 
     drop: 
       function(e, ui) 
       { 
        var param = $(ui.draggable).attr('src'); 
        var div_id = '#'+ $(this).attr("id"); 

        addlist(param,div_id); 
       } 
}); 

여기서 addlist()는 ajax를 사용하여 항목 콘텐츠를 만드는 함수입니다. 거기에 하나의 droppable 객체 만 얻도록 # item_list_2를 제한 할 수있는 방법이 있습니다.

감사

답변

0

당신은 요소가 이미 떨어있을 때 사용하지 않도록 설정하는 낙하 할에 동의 옵션을 구현할 수 있습니다 (당신은 당신의 사건에 따라 해당 조건을 구현해야) :

$("#item_list_2").droppable({ 
     accept: function() { 
      return elementsAlreadyDropped == 0; //<-- Implement for your concrete case 
     }, 
     drop: 
       function(e, ui) 
       { 
        var param = $(ui.draggable).attr('src'); 
        var div_id = '#'+ $(this).attr("id"); 

        addlist(param,div_id); 
       } 
}); 
+0

당신은 넣어 가지고 이전 요소가 해당 droppable에 있는지 확인하는 조건이 있습니다. 구현은 귀하의 경우에 따라 다릅니다. addlist funcion 구현을 공유 할 수 있다면 구체적인 구현을 도와 드릴 수 있습니다. – ggarber

+0

도움을 주신 gustavogb에게 감사드립니다. 한가지는 이해할 수 없다. 나에게 말한 곳 return elementsAlreadyDropped == 0; "elementsAlreadyDropped"에 대해 조금 더 설명해 주시겠습니까? 그리고 객체가 이미 삭제되었는지 확인하는 방법을 알려주십시오. 실제로 나는 20 개 이상의 박스에 떨어 뜨리는 총 8 개의 아이템이 있습니다. 많은 감사 – kakaajee

+0

기능 addlist (PARAM, div_id) { \t $ 아약스 ({ \t 유형 : "POST", \t URL : "아약스/addtobox.php" \t 데이터 : 'IMG ='+ 에 encodeURIComponent (PARAM) \t dataType와 'JSON' \t beforeSend : 함수 (X) {$ ('# 잭스 로더') CSS ('공개', '표시').} \t 성공 : 함수 (msg) { \t \t $ ('# ajax-loader') .css ('visibility', 'hidden'); \t \t if (parseInt (msg.status)! = 1) \t \t { \t \t \t return false; \t \t} 다른 \t \t { \t \t \t \t \t $ (div_id)으로 .Append (msg.txt); \t \t} \t}); \t} } 의견에 코드 형식으로 표시되지 않는 이유를 모르겠습니다. – kakaajee