2014-12-14 2 views
0

G'day 유래jQuery를 드롭 가능한 웹 사이트를 들어

를 업데이트하지 내가 드래그 앤 드롭 기능을 한 번 사용해야하는 AJAX 요청이 반환 한 경우와 유효 데이터가 발견, 일하고 있어요. 이 경우 :

  var allowDrop = ($json[0][0]); 
      if(allowDrop === "true") { 
       $editorCont.addClass("allow-drop"); 
      } 
      else { 
       $editorCont.removeClass("allow-drop"); 
      } 

... 완벽하게 작동합니다. 그러나

var $editorDropCont = $("body > div#page > div#editor.allow-drop"); 


     $editorDropCont.droppable({ 
      accept: "a.drag-button.clone-drop", 
      drop: function(event,ui) { 
       $clone = $(ui.helper).clone(); 
       $editorDropCont.append($clone); 

에만 AJAX 요청이 다시 전달되는 경우, 항목은 아직까지도 사업부는 경우 낙하 할 것입니다 반면 경우 페이지가 클래스 허용 드롭으로 그 상태로를로드 작동 더 이상 그 클래스를 포함하지 않습니다.

droppable 이벤트는 AJAX 요청 후에 droppable 상태를 업데이트했음을 요구하지만 작동하지 않는 것 같습니다.

div droppable을 만들 수있는 방법이 있습니까 AJAX 요청이 요청 되었습니까?

감사

답변

0

$editorDropCont 요소 (또는 요소)의 집합이기 때문에 그런 일이 당신은 $("body > div#page > div#editor.allow-drop")로 선택. 이 요소 집합에 클래스를 추가하거나 제거하면 해당 요소는 여전히 삭제 가능합니다. AJAX 요청이있을 때마다 dropable을 다시 초기화해야합니다.

$editorDropCont.droppable("destroy").droppable({...}); 

OR :

var allowDrop = ($json[0][0]); 

if (allowDrop === "true") { 
    $editorDropCont.droppable("destroy").droppable({...}); 
} else { 
    $editorDropCont.droppable("destroy"); 
} 
+0

이 같은이 드래그 수행 할 수 있습니다()? draggable()에서 이것을 시도했을 때 이미 초기화 되었기 때문에 오류가 발생했습니다. – zuc0001

+0

@ zuc0001, 왜 그리고 언제 드래그 가능한 것을 다시 초기화 하시겠습니까? –

+0

내 페이지에서 모든 AJAX 요청 후 draggable을 다시 초기화해야합니다. 각 AJAX 요청은 allowDrop이 true (위의 코드 에서처럼)인지 확인하고 true이면 해당 클래스를 추가합니다. 이것은 .draggable()의 경우와 동일하며, 드래그 이벤트가 이전 AJAX 요청에서 이미 초기화되었을 수 있으므로 클래스가 제거되거나 추가되면 다시 작동하지 않습니다. – zuc0001

관련 문제