我的视图包含一个带有可滚动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滚动事件永远不会发生的事实。相反,我得到的只是鼠标悬停
知道我错过了什么吗?
答案 0 :(得分:1)
我通常通过添加" all"来调试它。事件,然后只记录事件是什么。
所以
events:
"all": "log"
log: (e) ->
console.log e
看看有什么东西吐出来的。有时它的名字略有不同或者有什么。
答案 1 :(得分:1)
您无法对滚动事件使用事件委派,因为它不会冒泡。您可以阅读更多相关信息here。对于不能使用委托的事件的另一种选择是在渲染上自行进行手动绑定,如下所示:
MyView.prototype.onRender = function () {
this.$("tbody").scroll(this.scrollHandler);
};