4

これは基本的にjqueryで見られるものと同じフィドルです

これがそのバージョンのフィドルです: http://jsfiddle.net/DHCaA/

私がやろうとしていることは簡単です。たとえば、(そのフィドルを使用して) セクション 1 をセクション 2 の下に移動した場合、場所を切り替えたセクションの ID を取得するにはどうすればよいですか。モデルの計算と変更を行うために、これらの ID が必要です。

アコーディオンのすべての要素は動的に作成され、私が望むものは何でも作成できます。例えば:

<div id ="first-1" class="group">

これが ID 付きの最初のエントリです。

何か案が?

4

3 に答える 3

2

要素の元のインデックスを (たとえば を介してdata()) 保存し、並べ替え後に保存されたインデックスと現在のインデックスを比較することができます (それらが等しくない場合、位置が変更されています)。その後、保存されたインデックスを更新します。

$( "#accordion" )
      .accordion({
        header: "> div > h3",
        collapsible: true
      })
      .sortable({
        axis: "y",
        handle: "h3",
        stop: function( event, ui ) {
        var items=[];
        ui.item.siblings().andSelf().each(function(){
            //compare data('index') and the real index
            if($(this).data('index')!=$(this).index()){
              items.push(this.id);
            }
          });
          // IE doesn't register the blur when sorting
          // so trigger focusout handlers to remove .ui-state-focus
          ui.item.children( "h3" ).triggerHandler( "focusout" );
          if(items.length)alert(items.join(','));
          ui.item.parent().trigger('stop');
        }
      }).on('stop',function(){
        $(this).children().each(function(i){$(this).data('index',i)});
      }).trigger('stop');

http://jsfiddle.net/DHCaA/2/

于 2013-06-30T23:24:30.407 に答える