我有一个场景,其中下拉列表的数据有很多字母,所以我的第一个操作是将下拉列表的宽度设置为 250px。
在此之后,我意识到当下拉菜单显示时,浏览器上会出现一个水平滚动条。
所以我尝试改变下拉菜单的位置。我试过这段代码:
var data = [{name:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},{name:"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"},{name:"ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"}];
$("#combo").igCombo({
dataSource:data,
textKey:"name",
valueKey:"name",
width:"200px",
dropDownWidth:"350px",
dropDownOpened: function (evt, ui) {
var container = $(ui.list[0]);
var containerWidth = $(container).width();
var comboWidth = $($($(ui.owner.element[0]).parent()).parent()).width();
var dropDownLeft = comboWidth - containerWidth;
$(ui.list[0]).css("left",dropDownLeft);
}
});
但是当下拉菜单打开时,移动到新位置,然后回到初始位置。我在jsfiddle上准备了一个示例
我想我缺少一些东西来保住这个职位。
了解我想要达到的目标。
这就是我想要实现的目标:
特别注意:我需要它在 Internet Explorer 上工作,所以基础设施论坛上的答案不适用。此致