2011-04-22 3 views
1

나는 다음과 같은 HTML 논리 블록이 있습니다JQuery와 아코디언은 드래그 앤 드롭되는

  • 첫 번째는 정렬 아코디언 목록
  • 두 번째 드래그 아코디언의 목록 입니다을 . 이러한 요소는 정렬 가능한 아코디언에 추가 할 수 있습니다. 여기

데모 : http://jsfiddle.net/t3tVA/

그래서 나는 정렬 아코디언에 추가하기 위해 내 드래그 할 수있는 요소를 이동하고 싶습니다. 정렬 가능한 아코디언 중에서 요소를 놓을 때 열 수 없다는 점을 제외하고는 정상적으로 작동합니다. 여기

내 자바 스크립트 코드 :

$(function() { 
$("> div", "#questionsDispos").draggable({ 
    helper: "clone", 
    revert: "invalid", 
    cursor: "move", 
    handle: "h3", 
    connectToSortable: ".questions" 
}); 

$(".questions").accordion({ 
    header: "> div > h3", 
    collapsible: true, 
    active: false, 
    autoHeight: false 
}).sortable({ 
    handle: "h3", 
    receive: function(event, ui) { 
     $(ui.item).removeClass(); 
     $(ui.item).removeAttr("style"); 
    } 
}); 

$("#questionsDispos").accordion({ 
    header: "> div > h3", 
    collapsible: true, 
    active: false, 
    autoHeight: false 
}); 
}); 

그리고 여기 내 HTML입니다 :

<div class="questions"> 
    <div> 
     <h3><a href="#">Question 1. My First Question ?</a></h3> 
     <div> 
      First content<br /> 
     </div> 
    </div> 

    <div> 
     <h3><a href="#">Question 2. My Second Question ?</a></h3> 
     <div> 
      Second content<br /> 
     </div> 
    </div> 

    <div> 
     <h3><a href="#">Question 3. My Third Question ?</a></h3> 
     <div> 
      Third content<br /> 
     </div> 
    </div> 
</div> 

Questions disponibles :<br /> 
<div id="questionsDispos"> 
    <div> 
     <h3><a href="#">Something</a></h3> 
     <div> 
      My Content Here<br /> 
     </div> 
    </div> 
</div> 

나는 JQuery와 - UI를-1.8.11.custom.min의 패치 버전을 사용하는 것이 유의하시기 바랍니다 .patch.js를 사용하여 sortable의 receive 이벤트에서 ui.item을 사용하십시오. (이동 된 요소를 다른 요소처럼 보이게 만들기 위해 일부 클래스를 제거하는 데이 클래스를 사용합니다.) 당신은 여기에서 다운로드 할 수 있습니다 http://www.toofiles.com/fr/oip/documents/js/jquery-ui-1811customminpatch.html

편집 : 당신이 그것을 테스트 할 수 있도록 내가 여기 데모를 게시 : http://jsfiddle.net/t3tVA/ 당신이 상단에있는 아코디언 사이에 "뭔가"를 삭제할 때 당신이 볼 수 있듯이, 그것은 열 수 없습니다 더 이상

누군가 해결책이 있습니까? 감사합니다.

답변

1

버그 this에 따르면, 이것은 지금 당신이 할 수있는 것이 아닙니다. 그러나 버그 보고서를 보면 누군가가 코드베이스에 추가 autoActive 옵션을 추가하여 해결책을 제시했습니다.

다른 방법은 아코디언을 삭제하고 아코디언에 요소를 놓은 다음 다시 작성하는 것입니다. 근무 샘플 :

http://jsfiddle.net/t3tVA/1/

+0

불행하게도,이 솔루션은 안정되지 않습니다. 내 요소를 추가하고 항목을 여러 번 정렬하면 버그가 발생합니다. 실제로 잠시 후 2 개 이상의 항목이 선택됩니다. –

+1

너무 나쁨. 필요한 경우 아코디언을 다시 만드는 또 다른 해결책을 내 대답에 추가했습니다. 희망이 도움이됩니다. – Richard

+0

고마워요! :) –