JQuery Sortable - 处理IE中的错误?

Sha*_*e N 8 jquery internet-explorer jquery-ui z-index jquery-ui-sortable

我有一个我希望能够排序的div列表.每个div中都有文本,并且里面还有一个句柄(由于UI,我只想在列表项的左半部分被拖动时进行排序).在Chrome/FireFox中,这非常有用,但在IE中,如果单击文本,即使文本在句柄内,也不会让您排序.

我在这里找到了问题的模型,请确保使用Internet Explorer进行测试:http://jsfiddle.net/t8Ebd/

我假设这是一个分层的事情,但尝试了以下方法,没有运气:

  • 更改文本和句柄的z索引
  • $( "ITEMNAME")disableSelection();
  • ms-user-select:none; 用户选择:无;
  • 将文本类添加到句柄列表 - 这解决了问题,但不适用于我,因为我不希望列表项右半部分的文本触发排序
  • 在手柄上设置背景颜色 - 我知道这听起来很奇怪,但是如果我设置了一个颜色,那么它就会成为最顶层的元素,因此它会正常运行,尽管它隐藏了对我不起作用的文本.

任何人有任何其他想法?

Did*_*hys 6

在IE中打破".sorthandle"之后你有一个额外的逗号:

$("ul").sortable({
    handle: ".sorthandle",  // here
});
Run Code Online (Sandbox Code Playgroud)

将其更改为:

$("ul").sortable({
    handle: ".sorthandle"
});
Run Code Online (Sandbox Code Playgroud)

我在评论中建议使用disableSelection()jQuery UI中的方法.虽然它似乎也没有完全奏效.

我设法通过为句柄设置背景颜色并将不透明度设置为零来实现您所追求的目标,因此它是不可见的:

.sorthandle {
    ...
    background-color: White;
    opacity: 0;
    filter: alpha(opacity = 0);
}?
Run Code Online (Sandbox Code Playgroud)

DEMO

当然这会移除你的绿色边框,我不知道这是否重要.

也许这可以通过使用png透明背景图像来工作.我的猜测是没有背景的句柄,IE选择下面的文本.