У меня проблемы с получением кода пользовательского интерфейса для хорошей работы в IE.
У меня есть таблица - матрица значений. Каждая ячейка может быть пустой или содержать список элементов.
Я хочу, чтобы пользователи могли перетаскивать элементы между ячейками.
Итак, мой HTML выглядит примерно так:
<table>
<tr><td></td><th scope="col">col 1</th><th scope="col">col 2</th></tr>
<tr><th scope="row">row 1</th>
<td class="droppable-cell">
<div class="draggable-item">item A</div>
<div class="draggable-item">item B</div>
</td>
<td class="droppable-cell"></td>
</tr>
<tr><th scope="row">row 2</th>
<td class="droppable-cell"></td>
<td class="droppable-cell">
<div class="draggable-item">item C</div>
<div class="draggable-item">item D</div>
</td>
</tr>
</table>
Затем я использую jQuery 1.3.1 и jQuery UI 1.6rc6:
$j('.draggable-item').each(function()
{
$j(this).draggable({
addClasses: false,
revert: true,
zIndex: 2000,
cursor: 'move'
});
});
$j('.droppable-cell').each(function()
{
$j(this).droppable({
addClasses: false,
activeClass: 'droppable-cell-candrop',
hoverClass: 'droppable-cell-hover',
tolerance: 'pointer',
drop: function(event, ui)
{
//function to save change
});
});
});
Обратите внимание, что это упрощенный, усеченный и незаконченный код.
Моя проблема в том, что в FX, Safari, Chrome и т. Д. (То есть во всех приличных браузерах) это работает нормально.
IE действительно борется, хотя. С таблицей 5х5 заметна задержка IE в начале перетаскивания. На столе размером 10x10, возможно, с 100 элементами, начало перетаскивания висит в браузере.
Я хочу иметь возможность поддерживать до 20х15 ячеек и, возможно, до 500 предметов - это просто невозможно? Не похоже, что так должно быть.
Я что-то не так делаю? Есть ли способ сделать это, чтобы не замедлять страницу в IE, как это?