السلوك غير المتوقع jQuery غير متوقع
-
21-09-2019 - |
سؤال
أنا أعمل في مشروع يمكنني من خلاله إنشاء مستندات Word ، واحدة من الوظائف هي تحديد جدول المحتويات. أريد أن تكون TOC قائمة قابلة للفرز لفرز الفصول.
أنا أعيد إعادة تكرار البيانات من جدول MySQL ، والذي يعمل كما هو متوقع. نظرًا لأنني وجدت أن هناك بعض السلوكيات الغريبة في IE7 (والإصدارات الأخرى المحتملة) ، فقد عدت مرة أخرى إلى الأساسيات وحاولت ما يلي في ملف HTML بسيط دون أي بنية تم إنشاؤها DB.
<!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 هو المتصفح الافتراضي ولا يمكن إجراء أي مفتاح.
هل لدى أي شخص بعض الاقتراحات ماذا تفعل؟
في الأساس ، أريد فقط إعادة تنظيم القوائم والقوائم المتداخلة. في هذه اللحظة ، يمكنني فقط سحب Arground the Mainchapters ، عندما أحاول سحب الفرق الفرعية ، يتم سحب بنية القائمة بأكملها من الوالد المقابل. لذلك ، عندما أحاول سحب "الفصل 2.2" لوضعه أعلاه "الفصل 2.1" ، أقوم بالفعل بسحب "الفصل 2" ، مع posibillity الوحيد لسحبه أعلاه "الفصل 1".
آمل أن يكون سؤالي واضحًا بما فيه الكفاية.
هذا عرض تجريبي. يضيف /edit
إلى عنوان URL لرؤية الكود واللعب معه
المحلول
فقط أضف هذا
$('ul.list').bind('mousedown', function(e) {
e.stopPropagation();
});
سيتوقف هذا أي من الفقاعات mousedown
حدث للوالد ul
, ، مما يسبب السلوك الغريب الذي رأيته. الآن يجب أن تعمل كما هو متوقع