2012-05-18 2 views
2

사용자가 <li><ul> 목록에 다시 배열 할 수 있도록 jQuery sortable을 사용하고 있습니다.jQuery sortable이 IE에서 작동하지 않습니다.

$(function() { 
    $('#uisortable').sortable(); 
    $("#uisortable").disableSelection(); 
}); 

항목은 JS에서와 항목을 추가 한 후 동적으로 추가되어, 내가

$를 호출하고 있습니다 ('#의 uisortable': HTML은

<ul id="uisortable"></ul> 

를 포함하고 자바 스크립트는이 포함) .sortable ("새로 고침");

모든 FF, 오페라와 웹킷에 완벽하게 잘 작동하지만 IE에서 전혀 작동하지 않습니다 - 모든 버전, 심지어 IE 나는이 같은 sortableactivate 옵션을 추가하는 시도 9 :에서

$('#uisortable').sortable({ 
    activate: function() { 
     throw("Start sorting"); 
    } 
}); 

IE 9 스크립트 디버거, 줄에 throw("Start sorting") 줄 중단 점 -하지만 그 줄을 결코 활성화합니다. IE에서 정렬 기능은 단순히 목록에 첨부되지 않는 것처럼 보입니다.

jquery 1.4.2와 jquery UI 1.8.13을 사용하고 있습니다.

흥미롭게도 jquery UI를 사용한 정렬 가능한 데모 페이지는 정상적으로 작동하므로 내 코드가 있어야합니다. 그러나 얼마나 더 단순화 할 수 있습니까? 좋아, 할 수있어. 항목을 동적으로 작성하는 대신 HTML로 정적으로 작성했습니다 (테스트 용). 나는 한 줄의 텍스트를 제외하고 <li>에서 모든 것을 제거했다. 이제 내 HTML은 다음과 같습니다.

<ul id="uisortable"> 
    <li class="sortitem">Item 1</li> 
    <li class="sortitem">Item 2</li> 
    <li class="sortitem">Item 3</li> 
</ul> 

위의 자바 스크립트 코드를 사용하십시오. 여전히 IE에서는 작동하지 않습니다. 오류 콘솔에 어떤 종류의 오류도 없습니다. FF, 웹킷, 오페라에서 좋아. 나는 지금 완전히 곤란하다. 어떤 도움이라도 대단히 감사합니다.

+1

jQuery의 최신 버전을 사용할 수 없습니까? – Blazemonger

+0

@Blazemonger 나는 지금 거기에 가고 싶지 않을 것이다. 사이트에는 수천 페이지가 있으며, 그 중 절반은 jquery에 의존합니다. jquery 버전을 변경하면 수천 페이지를 다시 테스트해야합니다. –

답변

3

분명히이 문제는 jquery.ui 버전과 관련이 있습니다. 나는 1.8.13에서 1.8.20으로 업그레이드했다 (jquery를 1.4.2에서 1.7.2로 업그레이드하는 것보다 훨씬 쉽다).

+0

네, 이상하게도 JSFiddle (http://jsfiddle.net/edmM7/9/)을 사용하여 JQuery 1.4.2 & 1.8.13을 업데이트했습니다 ... 그리고 IE9에서도 여전히 작동합니다. – Holf

+1

@Holf IE의 경이로움 :) 이제는 작동합니다. 더 이상 감동하지 않을 것입니다! –

+0

정확히 내가 할 수있는 일! :) – Holf

0

this JSFiddle을 살펴보십시오.

jQuery 1.4.4를 사용하여 IE9에서 제대로 작동합니다. 하지만 JQuery 1.3.2 (JSFiddle에서 사용 가능한 다음 하위 버전)로 이동하면 작동이 멈 춥니 다.

JSFiddle에 '리소스 추가'를 사용하여 사용중인 정확한 버전을 가져올 수 있지만 JQueryUI 1.4.4 이상을 사용하면 해당 버전의 JQueryUI로 문제를 해결할 수 있다고 생각합니다.

+0

jQuery 1.3.2에는 이전 버전의 jQuery-UI가 필요합니다. – Blazemonger

관련 문제