这可能是一个神器,但它在我转换到SlickGrid V2之后构建的几个Grids中是可重现的(仅限IE)(在以前的版本中从未见过)。当用户调整列的大小时,Resort方法也会触发,当然,它会对列进行调整 我也这样做了(没有效果):
grid.onColumnsResized.subscribe(function(e, args) {
e.stopImmediatePropagation();
e.stopPropagation();
// alert('resized');
return false;
});
但是,当我加入警报时...一切正常(无法求助)。所以......我认为这是一个时间问题。我设置了一个假的2秒计时器(除了时间之外什么也没做)并且也没有效果(仍然是度假村)。
有人可以解释发生了什么以及为什么alert
似乎允许一切正常工作。无论我使用当地度假村还是默认的SlickGrid Resort方法,都无所谓。
由于
答案 0 :(得分:1)
基本上问题是IE在调整大小时会触发列上的单击事件。如果鼠标悬停时光标下方有一个列标题,则将使用该列。
对于警报框有用的原因,浏览器事件按特定顺序触发。在IE中,dragend(触发onColumnsResized)在点击之前被触发(触发一个度假胜地)。因为它们的类型不同,停止传播不会做任何事情,但是弹出警告框可能会阻止重影点击在列标题上注册。
这是应该在SlickGrid库中解决的问题,而不是使用它的代码。