Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery可排序-处理IE中的错误?_Jquery_Internet Explorer_Jquery Ui_Z Index_Jquery Ui Sortable - Fatal编程技术网

JQuery可排序-处理IE中的错误?

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用户选择:无

我有一个可以排序的div列表。每个div中都有文本,其中还有一个句柄(由于UI的原因,我只想在拖动列表项的左半部分时进行排序)。在Chrome/FireFox中,这非常有效,但在IE中,如果你点击文本,它将不允许你排序,即使文本在句柄内

我这里有一个问题的简化模型,请确保您使用Internet Explorer测试:

我假设这是一个分层的问题,但我尝试了以下方法,但没有成功:

  • 更改文本和句柄的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>&nbsp;</span></div>
 .sorthandle span{
    width:100%;
    background-color:blue;
    opacity:0.0;
    filter:alpha(opacity=0);
    display:block;
}