jQuery UI Sortable与slideToggle结合使用时,拖动有时会失败(举个例子!)
我遇到了一个问题,当其中一个列表使用slideToggle折叠时,使用jQuery UI Sortable进行排序失败 下面是一个演示: 说明:折叠第二个列表,将项目从第一个列表拖动到第三个列表,然后尝试将项目从第三个列表拖动到第一个列表 我注意到一些奇怪的事情: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中 这可能不是一个理想的解决方案,但如果您禁用对折叠
- 如果所有列表都展开,则拖放将起作用
- 拖放的成功率取决于窗口的滚动位置
我已经在最新的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');
}
});