4

我正在使用的选择框有 4 个顶级选项,每个选项下面都有一个选项列表。选定的选项出现在列表的底部,这意味着用户仍然必须向上滚动才能看到子选项。

我的问题是,如何使“选定”选项位于顶部?即,使整个选择框滚动,使其出现在顶部?

4

2 回答 2

1

您可以做的是找到所选索引,选择接近末尾的选项并重新选择所选项目,该项目将出现在列表顶部。这是hacky,但有效。这也仅适用于单选,如果是多个选项,则必须重新选择所有选项。

var sel = ​document.getElementById("yourSelect");
var optsLen = sel.options.length;
var selIndex = sel.selectedIndex;
var size = sel.size;
if (selIndex>=size) {
    var newIndex = selIndex+size+1;
    if (newIndex>optsLen) {
        newIndex = optsLen;
    }
    sel.selectedIndex = newIndex;
    setTimeout(function(){sel.selectedIndex = selIndex},1); //slight delay so line above runs
}

​</p>

JSFiddle

于 2012-10-29T12:02:22.023 回答
1

尝试这个:

$('select option:selected').before($('select option:first'));

如果这是你的意思?

于 2012-10-29T11:30:34.373 回答