0

Backbone.jsアプリにソート可能なリストがあります(jqueryuiのソート可能なリストは使用していません。小さなリストをすべて自分で作成しました)。すべてのリストアイテムについて、そのバックボーンモデルには、リスト内の順序を保持する順序属性があります。このリストを並べ替えるたびに、位置が変更されたすべてのリストアイテムのこの順序属性を変更したいと思います。しかし、問題は、ソートアクションを検出する方法がわからないことです。ドラッグされているアイテムモデルでこのアクションを検出するのは簡単かもしれませんが、このアイテムが移動すると他のアイテムの位置が影響を受けるため、これらのアイテムモデルで並べ替えアクションを検出し、その後、それらの順序属性を変更するにはどうすればよいですか?

4

1 に答える 1

0

リスト内のアイテムの位置を (ドラッグするなどして) 変更すると、バインドできるイベントが発生しますか? 他に何もないとしても、それらをドラッグしている場合は、おそらく にバインドできますmouseup。モデルはコレクションですか?それとも、DOM 要素から Backbone ビュー オブジェクトにアクセスできますか?

おそらくこのようなものです。view_objectこれは、を使用して Backbone ビュー オブジェクトをプロパティに保存jQuery.dataし、対応するモデルをmodelオプション オブジェクトのプロパティとしてビュー コンストラクターに渡したと仮定しています。

var Item_View = Backbone.View.extend( {

  initialize : function ( options ) {

    this.$el.data( 'view_object', this );

  },

  events : {

    "mouseup" : function () {

      $( "#items .item" ).each( function ( index ) {

        $( this ).data( 'view_object' ).model.set( 'order', index );

      } );

    }
    // "mouseup"

  }
  // events

} );


var model = new Item_Model( {} );

var view = new Item_View( {

  model : model

} );
于 2012-05-04T13:28:30.100 に答える