2

如果在所选项目区域内单击滚动条,是否有办法防止多选控件展开以显示项目?

这里有一个“问题”的例子,至少我希望这不是理想的功能。我希望所选项目向下/向上滚动,而不是在多选控件中公开可选项目。

单击滚动条之前:

在滚动条单击之前

单击滚动条后:

滚动条点击后

4

1 回答 1

3

多选列表在多选小部件上的 mousedown 事件上打开。当您单击元素滚动条时,也会触发与单击事件不同的 mousedown 事件。

改变这种行为的最简单方法是改变打开多选的事件。所以首先你必须停止原始事件:

var multiselectwrap = multiselect.element.closest('.k-multiselect').find('.k-multiselect-wrap');
multiselectwrap.on('mousedown', function(e){
    e.stopPropagation();
});

其次,您可以在点击时触发打开多选:

multiselectwrap.on('click', function(e){
    multiselect.open();
});

剑道道场示例:http ://dojo.telerik.com/urUYU

如果要在 mousedown 上保持小部件打开,则必须使用事件中的鼠标位置并检查是否单击滚动,这会使此代码复杂化。

于 2017-05-04T20:42:55.157 回答