list.coffee | |
---|---|
定義されてなかったらrequire | Spine ?= require('spine')
$ = Spine.$ |
Spine.Controllerを継承 | class Spine.List extends Spine.Controller
events:
'click .item': 'click'
selectFirst: false
constructor: ->
super
@bind 'change', @change |
上書き必要 | template: ->
throw 'Override template'
change: (item) =>
@current = item
unless @current
@children().removeClass('active')
return
@children().removeClass('active')
$(@children().get(@items.indexOf(@current))).addClass('active') |
render | render: (items) ->
@items = items if items |
templateかぶせてhtmlにする | @html @template(@items) |
changeを呼び出す | @change @current |
わからん | if @selectFirst
unless @children('.active').length
@children(':first').click() |
children: (sel) ->
@el.children(sel)
click: (e) ->
item = @items[$(e.currentTarget).index()]
@trigger('change', item)
true
module?.exports = Spine.List
|