【发布时间】:2011-05-12 00:42:44
【问题描述】:
这仅在 IE8 中, 当我有多个值选择框绑定到时发生 带有 selectedOptions 的 observableArray 并且项目数超过 选择可以显示(启用滚动)。 因此,每当我 Ctrl+单击选择框中的项目时,滚动 位置“跳开”,我最终被向下滚动了一点。这 产生紧张不安的不愉快体验。 据我了解,这个问题是因为双向绑定 selectedOptions:当我点击一个项目时,它会被添加到数组中, 这反过来会导致在 observableArray 之后重新填充选择框 通知 UI 其更改。 有什么可以做的吗?
更新:
我最终使用了这个绑定:
<select data-bind='visible:operator() ? operator().Element == "DropDown" : false,
options: property() ? property().ReferenceItems : null,
optionsText: "Name",
optionsValue: "Id",
optionsCaption: "Выберите...",
selectedOptions: selectedValues,
multiple: selectedValues().length > 1'>
</select>
【问题讨论】:
-
你找到答案了吗?我有同样的问题
-
@Mel,我最终删除了双向绑定,并且只使用了单向绑定(从 ui 到 viewmodel)。这解决了我的问题。
-
对不起,我对此很陌生。但你到底是怎么做到的?我尝试使用纯 js 数组,虽然它确实消除了抖动问题,但数组没有随着选择而更新......
-
对不起,时间太久了,坦白说具体的我已经记不清了。我粘贴了我在 repo 中找到的代码,也许它会解决你的问题。