3

我遇到了一个问题,当使用 slideToggle 折叠其中一个列表时,使用 jQuery UI Sortable 进行排序失败。

这是一个演示:http: //jsfiddle.net/BNJzB/52/

说明:折叠第二个列表,将第一个列表中的项目拖到第三个列表中,然后尝试将第三个列表中的一个项目拖到第一个列表中。

我注意到一些奇怪的事情:

  • 如果所有列表都展开,拖放将起作用
  • 拖拽的成功率取决于窗口的滚动位置

我已经在最新的 Chrome 和 Firefox 中看到了这一点,但我还没有测试过 IE。

4

1 回答 1

1

从 3 拖到 1 的元素被转储到 2 中。

这可能不是一个理想的解决方案,但如果您禁用折叠列表的删除,它可以正常工作。像这样更新你的点击处理程序(你也不应该使用.live!)

$weekday.live('click', function() {
    var $this = $(this), // store the header/trigger
        $list = $this.next('ul'); // store the list

    $this.toggleClass('open').next('ul').slideToggle().toggleClass('closed');

    if ($this.hasClass('open')) { // if the header has the 'open' class, it is being toggled off
        // remove sortable functionality
        $list.sortable('disable');            
    } else {
        $list.sortable('enable');           
    }
});​

在这里查看:http: //jsfiddle.net/BNJzB/57/

于 2012-07-16T15:00:00.860 回答