【发布时间】:2012-06-28 16:38:36
【问题描述】:
我有这个 jQuery JS fiddle,它在 FF 13 中运行良好,但在 IE7/8/9 和 Chrome 中运行良好。
http://jsfiddle.net/kj9p4/114/
基本上,我想输入一个文本框并滚动到列表中的一个项目,该项目具有我刚刚键入的值。这是 HTML:
<input type="text" name="t" id="t" />
</br>
<select size="3">
<option value="1">value 1</option>
<option value="2">value 2</option>
<option value="3">value 3</option>
<option value="4">value 4</option>
<option value="5">value 5</option>
<option value="6">value 6</option>
<option value="7">value 7</option>
<option value="8">value 8</option>
<option value="9">value 9</option>
<option value="10">value 10</option>
<select>
这是 JS:
$(document).ready(function (){
$("#t").keyup(function () {
scrollToElement();
});
});
function scrollToElement(){
var $s = $('select');
var v = $("#t").val();
var ele = $s.find('[value="'+v+'"]');
var optionTop = $s.find('[value="'+ v +'"]').offset().top;
var selectTop = $s.offset().top;
$s.scrollTop($s.scrollTop() + (optionTop - selectTop));
}
有没有人有同样的经历?为什么 jQuery 在 Chrome 和 IE 中不起作用?
【问题讨论】:
-
相关:stackoverflow.com/questions/4240385/…。基本上,选项元素并没有真正的偏移量。
标签: jquery select scroll scrolltop