我使用以下代码片段将onscroll事件绑定到div
$div.bind("scroll", $.proxy(this._onScroll, this));
_onScroll: function (e) {
if (this.model.enableVirtualization) {
var contentdiv = $(".ganttgridtreecontent");
this._scrollTop = contentdiv.scrollTop();
var vScrollDist = Math.abs(this._scrollTop - this._prevScrollTop);
if (vScrollDist) {
vScrollDir = this._prevScrollTop < this._scrollTop ? 1 : -1;
this._updateCurrentViewRange();
this._prevScrollTop = this._scrollTop;
}
}
},
但是每次滚动操作都会调用两次。有没有办法阻止一个滚动动作。
答案 0 :(得分:0)
您可以尝试在函数中添加e.stopImmediatePropagation();
和e.preventDefault();
来停止第二个事件。
答案 1 :(得分:0)
$div.bind("scroll", $.proxy(this._onScroll, this));
似乎存在问题。
为什么不简单地在div标签中添加OnScroll。
<div id="Scrollable content" OnScroll="Scrollfunction()">
然后在你的javascript中定义函数:
function Scrollfunction()
{
if (this.model.enableVirtualization) {
var contentdiv = $(".ganttgridtreecontent");
this._scrollTop = contentdiv.scrollTop();
var vScrollDist = Math.abs(this._scrollTop - this._prevScrollTop);
if (vScrollDist) {
vScrollDir = this._prevScrollTop < this._scrollTop ? 1 : -1;
this._updateCurrentViewRange();
this._prevScrollTop = this._scrollTop;
}
}
}