焦点到 DOM 元素不起作用
focus to a DOM element doesn't work
我在木偶视图上有这个功能
onShow: function(){
// $('#boxId').val("I am here");
$('#boxId').focus();
}
当我使用$('#boxId').val("I am here");
时,它运行良好,元素的值为 I am here
.但是当我试图专注于那个元素时,它不起作用,它没有焦点。知道问题出在哪里吗?
我也试过
<input type="text" class="input_txt" id="boxId" maxlength="8" onload="$('#boxId').focus()">
和
onShow: function(){;
$(document).ready(function(){
$('#boxId').focus();
});
}
但它也没有用。
最后解决:
onShow: function(){
setTimeout(function(){
$('#boxId').focus();
},1000);
},
我同意 setTimeout 不是最好的解决方案,也表明您正在尝试在元素存在之前访问该元素。
我发现,如果您使用的是深度嵌套的布局和视图,onShow
方法的行为可能会很奇怪。可能发生的情况是,如果您在层次结构中的任何点调用.show()
onRender
布局,则该布局的每个子视图都将立即响应该特定show()
触发的"显示"。这意味着这些视图的onShow()
方法可以在它们的 DOM 子树准备就绪或插入到 DOM 中之前被调用。
如果您正在执行大量深度嵌套视图,我会仔细检查并确保您仅在布局的onShow
方法中调用.show()
。
改用这个: $('#boxId')[0].focus()
我很好奇聚焦标签是否有效?尝试聚焦输入?您是否在正确的时间呼叫焦点?您是否尝试过在就绪或设置超时或正文加载的文档中执行此操作
$(document).ready(function(){
$('#myBox').focus();
});
setTimeout(function(){
$('#myBox').focus();
},1000);
<body onload="$('#myBox').focus();">
http://api.jquery.com/focus/
--注意就绪的文档随机进入页面并在页面加载时运行
<input type="text" id="selectMe"/>
<script>
$(document).ready(function(){
$('#selectMe').focus();
});
</script>
如果你
使用setTimeout
那么我猜你在元素可用之前调用$('#boxId').focus();
- 你的<script>
高于你的<input>
。
几乎所有情况下,您都应该将<script>
标签放在关闭正文标签</body>
之前。造成这种情况的原因有很多,防止此类问题就是其中之一。
相关文章:
- 在IE8中不起作用的元素上触发单击事件
- 删除不起作用的父元素和所有子元素
- 更改第二次推送时不起作用的元素高度
- 为什么body元素上的onclick事件不起作用
- iframe中的jQuery查找元素不起作用
- jQuery选择ajax调用中附加的元素不起作用
- JQuery-动态创建的元素css不起作用
- angular元素在通过ng类添加类时不起作用
- 当我动态创建元素时,选择的插件不起作用
- .clone().appendTo-替换不起作用的元素样式
- 我的ID获取元素不起作用
- Javascript - 当使用 Javascript 生成 HTML 元素时,Magnific Popup 不起作用
- HTML 显示/隐藏元素 JS 不起作用
- 悬停时函数在具有相同 id 的多个元素中不起作用
- jQuery Ajax 元素的后期绑定不起作用
- 转换元素在引导程序中不起作用
- 为什么从 Angular 服务中的对象中删除此元素不起作用
- colorbox与元素实时绑定'分组获胜'不起作用
- 剑道模板在元素中单击不起作用
- 使用jQuery隐藏元素;不起作用