用骨干检测tbody滚动(牵线木偶)

时间:2014-09-09 15:52:38

标签: javascript jquery backbone.js marionette dom-events

我的视图包含一个带有可滚动tbody的表

这是使用标准实现的:

table.mytable tbody {
  overflow: scroll;
  display: block;
}

在视图中我指定了以下内容

tableDefinition =
  itemView: tRow
  itemViewContainer: 'tbody'
  template: myTemplate
  events:
    "all": "logIt"

  logIt: (a,b,c)->
    console.log "#{a.type} #{a.target.tagName}"

table = Marionette.CompositeView.extend tableDefinition

这一切都很有效,除了tbody滚动事件永远不会发生的事实。相反,我得到的只是鼠标悬停

知道我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

我通常通过添加" all"来调试它。事件,然后只记录事件是什么。

所以

events:
  "all": "log"

log: (e) ->
  console.log e

看看有什么东西吐出来的。有时它的名字略有不同或者有什么。

答案 1 :(得分:1)

您无法对滚动事件使用事件委派,因为它不会冒泡。您可以阅读更多相关信息here。对于不能使用委托的事件的另一种选择是在渲染上自行进行手动绑定,如下所示:

MyView.prototype.onRender = function () {
  this.$("tbody").scroll(this.scrollHandler);
};