我在让 UI 代码在 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 真的很挣扎。对于 5x5 表格,IE 在拖动开始时的延迟很明显。在可能有 100 个项目的 10x10 表上,拖动的开始会挂起浏览器。
我希望能够支持多达 20x15 个单元格,也许多达 500 个项目 - 这是不可能的吗?似乎不应该如此。
难道我做错了什么?有没有办法做到这一点,不会像这样减慢 IE 中的页面?