LoginSignup
3
3

More than 5 years have passed since last update.

Backbone.jsでjQueryのSortableを使用する際の小ネタ

Last updated at Posted at 2014-09-15

ViewでのSortableイベントの管理

Backbone.jsで、jQueryのSortableを使おうとした際にちょっと困ったことがあったのでメモ。

とあるTableにSortableを仕込もうと思って、Tableの初期化の際に

view.js
var Table = Backbone.View.extend({
  className: "ui-sortable",
  initialize: function(){
    this.$el.sortable({
       start: function(e, ui){
         this.idx = ui.item.index();
       },
       update: function(e, ui){
         alert(this.idx);
       }
    });
  }
});

みたいな感じでinitialize内で設定していたが、この場合だと、thisがTableクラスを参照してくれないので、this.idxがエラーになってしまう。もしかしたらbindとかで上手く解決する事ができるかもしれないけど、自分はこれで解決した。

view.js
var Table = Backbone.View.extend({
  initialize: function(){
    this.$el.sortable({});  
  },
  className: "ui-sortable",
  events: {
    "sortstart": "start",
    "sortupdate": "update"
  },
  start: function(e, ui){
    this.idx = ui.item.index();
  },
  update: function(e, ui){
    alert(this.idx);
  }
});

って感じです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3