JQuery可排序-处理IE中的错误?
我有一个可以排序的div列表。每个div中都有文本,其中还有一个句柄(由于UI的原因,我只想在拖动列表项的左半部分时进行排序)。在Chrome/FireFox中,这非常有效,但在IE中,如果你点击文本,它将不允许你排序,即使文本在句柄内 我这里有一个问题的简化模型,请确保您使用Internet Explorer测试: 我假设这是一个分层的问题,但我尝试了以下方法,但没有成功:JQuery可排序-处理IE中的错误?,jquery,internet-explorer,jquery-ui,z-index,jquery-ui-sortable,Jquery,Internet Explorer,Jquery Ui,Z Index,Jquery Ui Sortable,我有一个可以排序的div列表。每个div中都有文本,其中还有一个句柄(由于UI的原因,我只想在拖动列表项的左半部分时进行排序)。在Chrome/FireFox中,这非常有效,但在IE中,如果你点击文本,它将不允许你排序,即使文本在句柄内 我这里有一个问题的简化模型,请确保您使用Internet Explorer测试: 我假设这是一个分层的问题,但我尝试了以下方法,但没有成功: 更改文本和句柄的z索引 $(“.itemname”).disableSelection(); ms用户选择:无
- 更改文本和句柄的z索引
- $(“.itemname”).disableSelection();李>
- ms用户选择:无;用户选择:无李>
- 将文本类添加到句柄列表-这解决了问题,但对我来说不起作用,因为我不希望列表项右半部分的文本触发排序
- 在控制柄上设置背景色-我知道这听起来很奇怪,但如果我设置了颜色,它将成为最上面的元素,因此可以正确操作,尽管它隐藏了不适合我的文本
有人有其他想法吗?在插入IE的“.sorthandle”后面加了一个逗号:
$("ul").sortable({
handle: ".sorthandle", // here
});
将其更改为:
$("ul").sortable({
handle: ".sorthandle"
});
我在评论中建议使用jQuery UI中的方法
disableSelection()
。虽然它似乎也不太管用
我通过将手柄的背景色和不透明度设置为零,使其不可见,实现了您的目标:
.sorthandle {
...
background-color: White;
opacity: 0;
filter: alpha(opacity = 0);
}
当然这会删除你的绿色边框,我不知道这是否重要
也许这可以通过使用png透明背景图像来实现。我猜句柄没有背景,即选择下面的文本。将布局更改为:(有点像黑客)
如果你想在sorthandle上保留边框,请使用此选项。备用解决方法:在handle标记divWell中放置一堆
,在IE 7>9中它对我有效。。。javascript控制台中是否有错误?没有,我使用了您的代码,没有错误-如果单击左侧的文本并拖动,它会高亮显示文本;不拖拉-好捕捉逗号虽然!该插件提供了一种方法disableSelection()
来避免这种情况。我已经更新了提琴。感谢您的快速回复-很好的逗号捕捉,尽管我仍然在您提供的最新演示中看到了根本问题。我看到您正在禁用文本选择,但如果您拖动文本,则不会进行排序。还有其他想法吗?@DidierGhys-我也在看不透明度。有一个解决边界问题的方法:在手柄内放置一个跨距,其中有一个
,并给它一个显示:块,100%宽度;还有你所描述的不透明度css…有点黑客思维我很感激你努力保持边界,但我只是在那里添加了它,以便更好地突出这个问题。谢谢你的帮助,马克!
<div class='sorthandle'><span> </span></div>
.sorthandle span{
width:100%;
background-color:blue;
opacity:0.0;
filter:alpha(opacity=0);
display:block;
}