【问题标题】:Two dimensions jquery sortable retrieves a bug in IE二维jquery sortable检索IE中的一个bug
【发布时间】:2010-08-25 20:17:22
【问题描述】:

我在 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 让人毛骨悚然。

【问题讨论】:

    标签: jquery css internet-explorer-8 internet-explorer-7 jquery-ui-sortable


    【解决方案1】:

    我也遇到了同样的问题,但你的代码让我思考。我相信错误的发生是因为您单击的项目在两个列表中,因此不明确。因此,IE 错误地决定移动您单击的内容,以及任何也可排序的父项。我找到的解决方案是在浅列表中添加一个“句柄”定义(例如“#experienciasProfissionais > li > ul”)。这消除了歧义,因此被拖动的东西只能引用一个可排序的列表。

    【讨论】:

    • 嗨,Doug,很抱歉延迟回复您。我确实在这个项目中玩过 Handles 并找到了 Zitz :) 最后我以 BaseCampHq 的方式解决了这个问题 - 使用不同的地方而不是使用 Drag 对上层进行排序。模块顶部有一个链接,邀请用户对第一个维度进行排序,然后他们被重定向到一个专门的页面,所有项目都在一个简短而漂亮的列表中。这也解决了可用性问题,当页面中出现大量内容时,滚动变得非常非常高。
    【解决方案2】:
    newLi.find('ul.selectedFieldPlaceholder').sortable().bind('mousedown', function(oEvent, ui){
       oEvent.stopPropagation();
    });
    

    我有一个 ul > li 是可排序的,而那些 li 也有 ul 和可排序的 li, 无论如何,您所要做的就是在第二级/嵌套 ul 上调用 stopPropagation(),IE 不会将您的拖动传播到顶层。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      • 2021-06-04
      相关资源
      最近更新 更多