jQuery unerwartetes Verhalten sortierbar
-
21-09-2019 - |
Frage
Ich bin an einem Projekt arbeiten, wo ich Word-Dokumente erzeugen kann, eine der Funktionen ist ein Inhaltsverzeichnis zu definieren. Ich mag, dass mein TOC zum Sortieren der Kapitel eine sortierbare jQuery Liste.
Ich bin retreving die Daten rekursiv aus einer MySQL-Tabelle, die Funktionen wie erwartet. Da fand ich einige seltsamen Verhalten in IE7 gibt es (und mögliche andere Versionen) wechselte ich zu den Wurzeln zurück und versuchte, die folgend in einer einfachen HTML-Datei ohne DB-generierte Struktur.
<!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, um die Menge an Unterebenen) ich jedes Unterkapitel erwarte eine einzigartige sortierbare Liste innerhalb der übergeordneten Kapitel sein. In FireFox das funktioniert, wie es sollte, aber leider bei der Arbeit IE7 ist der Standard-Browser und kein Schalter vorgenommen werden.
Hat jemand ein paar Vorschläge, was tun?
Basicly Ich möchte nur Listen und verschachtelte Listen reorganisieren. In diesem Moment bin ich zu ziehen nur in der Lage, die mainchapters arround, wenn ich versuche, ein Unterkapitel der gesamte Liste-Struktur aus der entsprechenden Mutter ziehen wird gezogen zu werden. Also, wenn ich zu ziehen ‚Kapitel 2.2‘ versuchen, legen Sie es oben ‚Kapitel 2.1‘ Ich bin eigentlich ‚Kapitel 2‘, mit der einzigen es besteht die Möglichkeit ziehe sie per Drag oben ‚Kapitel 1‘.
Ich hoffe, meine Frage klar genug ist.
Hier ist eine Demo. /edit
an die URL fügen Sie den Code und mit ihm spielen, um zu sehen
Lösung
Fügen Sie einfach diese
$('ul.list').bind('mousedown', function(e) {
e.stopPropagation();
});
Dies wird IE stoppen sprudelt das mousedown
Ereignis an die Mutter ul
auf, die das seltsame sortierbar Verhalten führt Sie gesehen haben. Nun sollte es wie erwartet