2013-12-14 2 views
1

특정 jQuery .sortable()이 일부 상황에서 드래그/드롭 이벤트를 활성화하지 않는 이유를 알아 내려고 노력했습니다. - 특정 jQuery 대화 상자에 정렬 가능한 항목이 있는데 디버깅 중에 요소가 존재하는지 확인합니다 ($('theelement') 길이 1, $('theelement').sortable()에 전화하기 바로 전에).어떤 경우 jQuery 정렬 기능이 자동으로 실패합니까?

Chrome의 검사기에서 이벤트가 있는지 확인하고 드래그 앤 드롭 순서 변경을 허용하는 다른 jQuery 대화 상자에서 작동하는 동일한 코드를 수행하지 않는 이유가 표시되지 않습니다. jQuery('.something theelement').mouseup(function(){return false})과 같은 경우에 대비하여 컨테이너의 클래스를 제거하여 작동하는 클래스와 유사하게 만들었습니다.

는 또한

<ul target element> 
    <li>test</li> 
    <li>test</li> 
</ul> 

같은 간단한에 정렬을 변경하고 jquery(target element).sortable()는 그래서이 원인이 일부 복잡한 CSS 또는 DOM 문제가되지 않을해야 호출하여 코드를 단순화했습니다.

이 문제의 원인을 찾으려면 축소 된 jQuery-ui 소스의 각 행을 통해 각 단계를 디버깅하는 것 외에 다른 것이 있습니까?

+0

호기심 때문에,'.draggable()'과 같은 다른 ui 메소드를 대상 요소에 첨부하면 작동합니까? –

답변

0

이상하게도 draggable()이 작동합니다. 따라서 다시 정렬을 추가하기 전에 jQuery(element).data('uiSortable','')으로 함수를 제거합니다. jquery 입력에 ': visible'을 추가하면 엘리먼트가 손상되기 전에 호출되었을 때 엘리먼트가 손상되는 문제를 방지 할 수 있습니다.