我在IE8及以下版本中有两个维度排序错误。
IE只是不知道处理这件事。
如您所见,有两个级别的排序项目。两个维度。 在所有浏览器中,这个东西都很完美。只有IE变得疯狂。
我的代码
$("#experienciasProfissionais").sortable({
placeholder: 'ui-state-highlight',
cursor: 'n-resize',
handle: '.drag',
axis: 'y',
revert: true,
over: function (event, ui) {
ui.placeholder.css('height', ui.item.css('height'));
},
tolerance: 'intersect'
});
$("#experienciasProfissionais > li > ul").sortable({
placeholder: 'ui-state-highlight',
cursor: 'n-resize',
axis: 'y',
revert: true,
over: function (event, ui) {
ui.placeholder.css('height', ui.item.css('height'));
},
tolerance: 'intersect'
});
当我让第一个JQ对象运行时,一切都搞砸了。他只接受一级排序。 2是完全被禁止的。
在FF& Chrome一切都很好。只有IE给了毛骨悚然。
答案 0 :(得分:0)
我有同样的问题,但你的代码让我思考。我相信这个错误的发生是因为你点击的项目在两个列表中,因此含糊不清。因此,IE错误地决定移动您要点击的内容,以及任何也可以排序的父母。我找到的解决方案是在浅层列表中添加“句柄”定义(例如“#experienciasProfissionais> li> ul”)。这消除了歧义,因此被拖动的东西只能引用一个可排序的列表。
答案 1 :(得分:0)
newLi.find('ul.selectedFieldPlaceholder').sortable().bind('mousedown', function(oEvent, ui){
oEvent.stopPropagation();
});
我有一个ul> li是可以排序的,那些li也有可以排序的li, 无论如何你要做的就是在第二级/嵌套ul上调用stopPropagation(),IE不会将你的拖动传播到顶层。