我们正在使用rich:select
下拉输入。
<rich:select id="select" value="#{controller.attrs.value}" >
<f:selectItems value="#{controller.attrs.items}" var="foo"
itemValue="#{foo}" itemLabel="#{foo.bar}" />
<f:ajax event="#{ajaxActionController.action}" render="input" />
</rich:select>
我们的问题是,触发下拉菜单时,它总是从列表中的第一个元素开始。但是,我们希望它跳到当前所选项目的位置。
通过常规方法无法实现,但这应该可以:
<rich:select id="select" onlistshow="L.scrollList()" onlistclick="L.saveId()">
…
L = window.L || {};
(function() {
id = 0;
L.saveId = function() {
id = #{ rich:component('select') }.list.index;
};
L.scrollList = function() {
var list = #{ rich:component('select') }.list,
listDiv = $( #{ rich:component('select') }.popupList.popup ).find(".rf-sel-lst-scrl"),
selectedDivPos = $(list.items[id]).position();
listDiv.scrollTop(selectedDivPos.top - 7);
};
})(L);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句