选择列表滚动到特定的选项元素
Select list scroll to a specific option element
我有一个带有年份的选择框。第一个选项为空。当我点击选择列表时,我希望滚动条自动向下滚动。我试过scrollTop,但它只能在FireFox中工作。
,
<select id="mySelect">
<option selected="selected" value=""></option>
<option value="1911">1911</option>
<option value="1912">1912</option>
<option value="1913">1913</option>
<option value="1914">1914</option>
<option value="1915">1915</option>
<option value="1916">1916</option>
<option value="1917">1917</option>
<option value="1918">1918</option>
<option value="1919">1919</option>
<option value="1920">1920</option>
<option value="1921">1921</option>
<option value="1922">1922</option>
...
</select>
选择点击/聚焦实际上有点复杂。这就是你想要的:
$('#mySelect').focus(function(){
if($(this).data('focused') !== true)
{
$(this).data('focused',true);
$(this).children(':last-child').prop('selected',true);
}
});
$('#mySelect').blur(function(){
$(this).data('focused',false);
});
工作示例:http://jsfiddle.net/AlienWebguy/zuJrK/
试试下面的代码,希望对你有帮助
$("#mySelect").click(function(){
$(this).find("option").eq(someMiddleNumber).focus().blur();
});
您可以尝试从css中删除样式"overflow-y:auto;",该样式将保持所选项目滚动到视图中(当您使用方向键更改选择时)。
对AlienWebguy回答的一些改进:
你可以通过添加下面的settimeout部分来确保默认值保持选中,以防用户不做任何更改:
if($(this).data('focused') !== true)
{
$(this).data('focused',true);
$(this).children(':last-child').prop('selected',true);
// dirty workaround
window.setTimeout(function(){
$(this).val("");
}, 50);
}
ShankarSangoli很接近,但我认为你想:
$("#mySelect").click(function(){
$(this).find("option:last").attr("selected","selected");
});
相关文章:
- 根据select选项元素将表单重定向到不同的URL
- 只有当Angular从资源对象检索数据时,才选择选项元素
- jQuery 隐藏选项元素
- 根据选择选项元素将表单重定向到不同的URL,并在电子邮件中获取表单详细信息
- 无法在 IE 中设置选项元素的属性
- 选择/选项元素中的javascript事件OnKeyUp根本不起作用
- 如何知道选项元素是否设置了值属性
- JavaScript - 有没有更有效的方法来创建选项元素
- 如果我通过 Javascript 更改<选项>元素上的属性“选定”会发生什么
- 更改动态添加的选择选项元素的名称
- 尝试从选项元素获取 HTML
- 为什么 Chrome 在使用后退按钮后不显示选定的<选项>元素
- AngularJS在有效的ajax数据到达之前设置伪选项元素
- 如何在jQuery中获取选中的选项元素attr
- 你能在选项元素上设置点击事件吗?(Angular v2.0.0-beta.0)
- 事件外选项元素的Meteor值
- sort选择选项元素
- 在IE中使用.innerHTML添加选项元素无效
- select2.js-如何在选项元素内对齐两个项目
- 在IE中使用. innerhtml添加选项元素