【发布时间】:2012-09-25 22:24:17
【问题描述】:
当尝试将选择列表选项设置为选中以将选择列表滚动到该选项时,它适用于除 Chrome 之外的所有浏览器。在 Chrome 中它只工作一次,但连续的时间在 Chrome 中不起作用。如何确保在选择列表中设置选项的 selected 属性会将该选项滚动到视图中?
这是我的问题的一个例子 - http://jsfiddle.net/Z2rQG/
我用来在列表中选择一个选项以滚动查看的代码如下:
(function ($) {
$.fn.scrollToOption = function (option) {
var _option = $(option, this);
// if option is in list
if(_option) {
// store the selection state
var isSelected = _option.is(":selected");
_option.prop("selected", true); // scroll to the option
_option.prop("selected", isSelected); // restore the selection state
}
return this;
};
})(jQuery);
编辑:我也尝试过scrollTo jQuery 插件,它在Chrome 中效果不佳。这是一个例子 - http://jsfiddle.net/kavun/TW4XK/
编辑:这是我正在尝试做的更清晰的示例。从选择列表中选择两个选项,然后将列表滚动到最后选择的选项。这适用于除 Chrome 和 Safari 之外的所有浏览器。在 Chrome 中,第一个选择滚动到选项,但第二个 $('#select option[value=""].prop('selected', true); 不滚动列表 - http://jsfiddle.net/kavun/uhnZH/
【问题讨论】:
-
我开始认为这是 Chrome 的一个错误 - code.google.com/p/chromium/issues/detail?id=138217
-
您的 jsfiddle 不包含带有 ID 测试的 HTML 元素,并且非常不清楚您希望它做什么。您是否尝试按照您的建议滚动到页面上的“元素”或下拉菜单中的选项值?
-
它确实包含一个ID为test的元素,
标签: javascript jquery google-chrome scroll multi-select