在我的html中,我有这个数据绑定
<select data-bind="options: graders,
optionsText: 'LastName',
optionsValue: 'Id',
selectmenuValue: selectedGroup().GraderId,
optionsCaption: 'Choose a grader'">
</select>
在我的JavaScript中,我有以下内容来实时刷新UI
ko.bindingHandlers.selectmenuValue = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
if (typeof ko.bindingHandlers.value.init !== 'undefined') {
ko.bindingHandlers.value.init(element, valueAccessor, allBindingsAccessor, viewModel);
}
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
if (typeof ko.bindingHandlers.value.update !== 'undefined') {
ko.bindingHandlers.value.update(element, valueAccessor, allBindingsAccessor, viewModel);
}
$(element).selectmenu();
}
};
在Firefox中一切都很好,但在IE和Chrome上,每当我用鼠标点击组合框时,它的弹出窗口就会立即关闭。弹出窗口应该像在firefox中一样保持打开状态。经过多次尝试,我发现如果我将鼠标从第一个项目移动到另一个项目,同时按下它的按钮并在该点向上按,我可以使它保持打开状态。
有人知道如何解决这个问题吗?
更新:我刚刚意识到它的弹出窗口在IE和Chrome中的位置有点偏离,我相信这就是上面行为的原因。仍在寻找解决方案。
您希望样式设置为"下拉",我相信
$(element).selectmenu({style: 'dropdown'});