3

リストの1つがslideToggleで折りたたまれていると、jQueryUISortableを使用した並べ替えが失敗するという問題があります。

これがデモです:http: //jsfiddle.net/BNJzB/52/

手順:2番目のリストを折りたたんで、アイテムを最初のリストから3番目のリストにドラッグしてから、アイテムを3番目のリストから最初のリストにドラッグしてみます。

私が気づいたいくつかの奇妙なこと:

  • すべてのリストが展開されている場合、ドラッグアンドドロップは機能します
  • ドラッグアンドドロップの成功率は、ウィンドウのスクロール位置に基づいています

これは最新の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 に答える