尝试以编程方式设置焦点不适用于 Firefox
Trying to set focus programmatically does not work with Firefox
我在 Firefox 中尝试使用 jqueryjavascript 将焦点设置为控件时遇到了问题。虽然我的特定问题非常复杂,但即使是下面的简单测试用例也不适合我。找到输入,更改其值,但未聚焦输入。
问题仅存在于火狐
在Windows 7
上尝试使用Firefox 44.0.2它可以与MS IE 10和Chrome一起工作
$().ready(function() {
$("#I").val(3);
$("#I").focus(); // JQuery focus - does not work
var ctl = document.getElementById('I')
ctl.value='DOM';
ctl.focus(); // DOM Native focus - does not work
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type=text id=I>
这种就绪事件风格:
$().ready(function() {
很久以前就被弃用了,最好不要使用它。
您可以使用autofocus
属性:
$(document).ready(function() {
$('#I').val(3);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type=text id=I autofocus>
而不是jQuery尝试触发DOM .focus()
事件:
$(document).ready(function() {
$('#I').val(3);
$('#I')[0].focus();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type=text id=I>
我相信
在Firefox上设置焦点存在问题,有一种解决方法涉及使用focusout。见下文:
$().ready(function() {
$('#I').val(3);
$('#I').focusout(function() {
setTimeout(function() {
$(this).focus();
}, 0);
});
$('#I').focus();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="I" />
相关文章:
- CSS 类在特定场景中不适用
- Jquery焦点不工作/滚动
- ng类不适用
- Internet Explorer CSS类样式没有'如果存在具有相同类名的其他元素,则不适用
- 指令“链接”不适用,如我所愿
- 最小和最大轴值在具有对数轴的高图表中不适用
- 角度范围项目在项目更改后不适用
- 页面加载顺序有问题 - 样式不适用
- 更改可见性后,背景颜色不适用
- 在选择文本框时焦点不起作用
- CSS3 透视在动画完成之前不适用
- 将最后一个子项移到第一个位置不适用jquery
- 当函数作为参数传递时,Javascript函数提升不适用
- jQuery焦点不起作用
- D3,当上下文发生变化时,第二焦点不会移动
- 表格的替代颜色 css 不适用
- CSS宽度不'通过.html()克隆html代码时不适用
- 为什么在jQuery中使用focusout适用于Firefox,而使用addEventListener则不适用;t
- 样式不适用
- 在文本区域内设置焦点不起作用