jQuery scrollTop в <select> не работает в Chrome и IE
У меня есть jQuery JS скрипка, которая отлично работает в 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?
1 ответ
"По сути, я хочу ввести текстовое поле и выделить элемент в списке, значение которого я только что ввел". Приведенный ниже код удовлетворит ваши потребности
$(document).ready(function (){
$("#t").keyup(function () {
scrollToElement();
});
});
function scrollToElement(){
var s = $('select');
var t =$('#t').val();
var option = t - 1;
s.find('option:eq('+option+')').attr('selected','selected');
}