Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 UI Sortable与slideToggle结合使用时,拖动有时会失败(举个例子!)_Jquery_Jquery Ui_Jquery Ui Sortable_Slidetoggle - Fatal编程技术网

jQuery UI Sortable与slideToggle结合使用时,拖动有时会失败(举个例子!)

jQuery UI Sortable与slideToggle结合使用时,拖动有时会失败(举个例子!),jquery,jquery-ui,jquery-ui-sortable,slidetoggle,Jquery,Jquery Ui,Jquery Ui Sortable,Slidetoggle,我遇到了一个问题,当其中一个列表使用slideToggle折叠时,使用jQuery UI Sortable进行排序失败 下面是一个演示: 说明:折叠第二个列表,将项目从第一个列表拖动到第三个列表,然后尝试将项目从第三个列表拖动到第一个列表 我注意到一些奇怪的事情: 如果所有列表都展开,则拖放将起作用 拖放的成功率取决于窗口的滚动位置 我已经在最新的Chrome和Firefox中看到了这一点,但我还没有测试IE。从3到1的拖动元素被转储到2中 这可能不是一个理想的解决方案,但如果您禁用对折叠

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

下面是一个演示:

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

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

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

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

从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');           
    }
});​