2009-11-24 2 views
5

나는 Word 문서를 생성 할 수있는 프로젝트에서 작업 중입니다. 그 중 하나는 목차를 정의하는 것입니다. 내 TOC가 챕터 정렬을위한 정렬 가능한 jQuery 목록이되기를 바란다.jQuery 예기치 않은 정렬 가능한 동작

예상대로 작동하는 MySQL 테이블에서 데이터를 반복적으로 저장하고 있습니다. IE7 (및 가능한 다른 버전)에 몇 가지 이상한 동작이 있다는 것을 알았 기 때문에 기본으로 돌아가 DB 생성 구조가없는 간단한 HTML 파일에서 다음을 시도했습니다.

<!doctype html> 
<html> 
<head> 
<script type="text/javascript" src="./jquery-1.3.2.js"></script> 
<script type="text/javascript" src="./ui/jquery-ui-1.7.2.custom.min.js"></script> 
<script type="text/javascript"> 
    $(function() { 
    $("ul.list").sortable({ 
     opacity: 0.7, 
     helper: 'clone', 
     cursor: 'move', 
     tolerance: 'pointer' 
    }); 
    $("ul.list").selectable(); 
    $("ul.list").disableSelection(); 
}); 
</script> 
<style type="text/css"> 
ul.list { 
    list-style:none; 
    padding:none; 
    margin:none; 
    border:1px solid #EFEFEF;} 
ul.list:hover { 
    border:1px dotted #333;} 
</style> 
</head> 
<body> 
    <ul class="list"> 
    <li>Chapter 1</li> 
    <li>Chapter 2 
     <ul class="list"> 
     <li>Chapter 2.1</li> 
     <li>Chapter 2.2</li> 
     </ul> 
    </li> 
    </ul> 
</body> 
</html> 

이 소스 (하위 레벨의 양에 관계없이)는 각 하위가 상위 장 내에서 고유 한 정렬 가능한 목록이 될 것으로 기대합니다. FireFox에서는 이것이 정상적으로 작동하지만 안타깝게도 IE7은 기본 브라우저이므로 전환 할 수 없습니다.

누구에게 제안해야 할 사항이 있습니까?

기본적으로 목록 및 중첩 목록을 재구성하고 싶습니다. 이 순간에 저는 메인 챕터를 드래그 할 수만 있습니다. 서브 챕터를 드래그하려고하면 해당 부모의 전체 목록 구조가 끌리게됩니다. 그래서 'Chapter 2.2'를 드래그하여 'Chapter 2.1'위에 놓으려고하면 실제로 'Chapter 2'를 드래그하여 'Chapter 1'위에 드래그하는 유일한 posibillity를 갖습니다.

제 질문이 충분히 분명하기를 바랍니다. URL에

Here's a Demo. 추가 /edit

+4

사람들이 IE7에서 문제를 볼 수 있도록 데모를 추가했습니다. –

+0

감사합니다!, 데모를 온라인으로 퍼뜨려 +1했습니다. 나는 수십 개의 방화벽 뒤에 있기 때문에 그렇게 할 수 없었다. 데모는 실제로 무엇이 잘못 될지 완벽하게 설명합니다. – Ben

+0

@Russ Cam : jsbin is good :) – Xinus

답변

19

는 그냥 원인이 부모 ul,에 mousedown 이벤트를 버블 링에서 IE가 중지됩니다이

$('ul.list').bind('mousedown', function(e) { 
    e.stopPropagation(); 
}); 

이 추가 코드를 확인하고 그것으로 재생 당신이 본 이상한 정렬 행동. 이제는 예상대로 작동합니다.

+1

고마워요! 그것은 정말로 트릭을했다! +1 + 동의! 다시 한 번 감사드립니다! – Ben

+1

남자, 지터, 방금 날 구 했어요! +1 –

+1

+1 또한 해결해야 할 부분이 있습니다. –