只要在IE和Chrome中按下按钮,Jquery selectmenu组合框就会关闭

时间:2012-08-28 22:23:01

标签: javascript jquery-plugins knockout.js

在我的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中几乎没有,我相信这就是上述行为的原因。仍在寻找解决方案。

1 个答案:

答案 0 :(得分:0)

您希望将样式设置为“下拉列表”我相信

$(element).selectmenu({style: 'dropdown'});