Есть ли причина, по которой jQuery Sortable будет работать в IE / Chrome, но не в Firefox? - PullRequest
1 голос
/ 05 января 2011

У меня есть довольно простой список горизонтально перемещаемых предметов, например:

<div class="my-widget-container">
    <div class="my-widget-column">...</div>
    ...
</div>

Контейнер и каждый столбец имеют фиксированную ширину, установленную с помощью jQuery's .width(). Контейнер position: relative и столбец float: left и overflow: hidden. Не уверен, если какие-либо другие стили / свойства имеют отношение.

Когда я применяю jQuery-UI, сортируемый к этому, результат в точности соответствует ожиданиям в Chome 8 и IE 8; столбцы можно перетаскивать, чтобы изменить их порядок. Но в Firefox 3.6 я могу щелкнуть элемент и перетащить, чтобы создать новый помощник по сортировке, но в действительности сортировка никогда не происходит; реальная позиция предмета в DOM никогда не меняется.

Я немного покопался в Sortable и добавил отладочную печать к _intersectsWithPointer. Всякий раз, когда помощник перетаскивания перемещается, Sortable просматривает свой список элементов и использует этот метод, чтобы определить, прошел ли помощник перетаскивания один. Я увидел, что item.left имеет одинаковое значение для всех моих столбцов, что, очевидно, неверно и, вероятно, является источником проблемы. Похоже, что все столбцы имели позицию left, соответствующую позиции первого столбца.

Я использую jQuery 1.4.3 и jQuery UI Sortable 1.8. Это не самые последние версии, но они довольно свежие, и я не вижу в примечаниях к выпуску Sortable ничего, что указывало бы на то, что любая такая проблема была исправлена.

Кто-нибудь знает, что здесь может происходить, или есть идеи для дальнейшей отладки?

...