2009-11-24 8 views
5

Ich arbeite an einem Projekt, wo ich Word-Dokumente generieren kann, eine der Funktionalitäten ist, ein Inhaltsverzeichnis zu definieren. Ich möchte, dass mein Inhaltsverzeichnis eine sortierbare jQuery-Liste zum Sortieren der Kapitel ist.jQuery unerwartetes sortierbares Verhalten

Ich retreving die Daten rekursiv aus einer MySQL-Tabelle, die wie erwartet funktioniert. Da ich festgestellt habe, dass es in IE7 einige seltsame Verhaltensweisen gibt (und mögliche andere Versionen), wechselte ich zurück zu den Grundlagen und probierte das Folgende in einer einfachen HTML-Datei ohne irgendeine DB-erzeugte Struktur aus.

<!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> 

Mit dieser Quelle (egal die Höhe der Unterstufen) ich jedes Unterkapitel erwarte eine einzigartige sortierbare Liste innerhalb der übergeordneten Kapitel sein. In FireFox funktioniert das so, wie es sollte, aber leider ist IE7 bei der Arbeit der Standardbrowser und es kann kein Wechsel vorgenommen werden.

Hat jemand einige Vorschläge, was zu tun ist?

Grundsätzlich möchte ich nur Listen und verschachtelte Listen reorganisieren. In diesem Moment kann ich nur um die Hauptkapitel ziehen, wenn ich versuche, ein Unterkapitel zu ziehen, wird die gesamte Listenstruktur vom entsprechenden Elternteil gezogen. Also, wenn ich versuche, "Kapitel 2.2" zu ziehen, um es über "Kapitel 2.1" zu platzieren, ziehe ich eigentlich "Kapitel 2" mit der einzigen Möglichkeit, es über "Kapitel 1" zu ziehen.

Ich hoffe meine Frage ist klar genug.

Here's a Demo. Add /edit auf die URL, den Code zu sehen und mit ihm

+4

eine Demo für Sie hinzugefügt, damit die Leute das Problem in IE7 sehen können –

+0

Danke !, gab ich Ihnen +1 für eine Demo online. Ich bin hier hinter Dutzenden von Firewalls, also konnte ich das nicht tun. Die Demo zeigt perfekt, was falsch läuft. – Ben

+0

@Russ Cam: jsbin ist gut :) – Xinus

Antwort

19

einfach hinzufügen, um dieses

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

Das IE an die Mutter ul, die die von sprudelt das mousedown Ereignis verursacht wird aufhören spielen seltsames sortierbares Verhalten, das du gesehen hast. Jetzt sollte es wie erwartet funktionieren

+1

Danke! Das hat es tatsächlich geschafft! +1 + Akzeptieren! Danke noch einmal! – Ben

+1

Mann, Jitter, du hast gerade meinen Tag gerettet! +1 –

+1

+1 Auch die Lösung, für die ich mich entschieden habe. –