Javascript 如何设置标记it小部件的焦点?
我只想在页面加载后让TagIt小部件具有焦点。我尝试过各种方法,比如:Javascript 如何设置标记it小部件的焦点?,javascript,jquery,tag-it,Javascript,Jquery,Tag It,我只想在页面加载后让TagIt小部件具有焦点。我尝试过各种方法,比如: <script type="text/javascript"> $("#myTags").tagit("tagInput").click(); </script> $(“#myTags”).tagit(“tagInput”)。单击(); 及 $(“#myTags”).tagit(“tagInput”).focus(); 还有更奇特的事情,比如使用jQuery修改ID和调用 <s
<script type="text/javascript">
$("#myTags").tagit("tagInput").click();
</script>
$(“#myTags”).tagit(“tagInput”)。单击();
及
$(“#myTags”).tagit(“tagInput”).focus();
还有更奇特的事情,比如使用jQuery修改ID和调用
<script type="text/javascript">
$("#newIDiTriedToMake").focus();
</script>
$(“#newIDiTriedToMake”).focus();
我所做的一切似乎都没有让TagIt小部件获得键盘焦点。我必须通过我的页面点击标签,或者用鼠标手动点击标签,开始输入标签。有人能给我提供线索吗?我想你所缺少的只是在设置焦点之前构建DOM。也就是说,如果.tagit(“tagInput”)引用一个可聚焦的元素。您可以尝试:
<script type="text/javascript">
$(function() {
$("#myTags").tagit("tagInput").focus();
});
</script>
$(函数(){
$(“#myTags”).tagit(“tagInput”).focus();
});
当您有文档时,您应该集中精力。准备就绪:
<script type="text/javascript">
$(document).ready(function(){
$("#newIDiTriedToMake").tagit("tagInput").focus();
})
</script>
$(文档).ready(函数(){
$(“#newIDiTriedToMake”).tagit(“tagInput”).focus();
})
我想你们都在正轨上,当我试图设置焦点时,文档还没有完成构建(因此元素可能不存在)。然而,我用简单的方法解决了这个问题:编辑源代码
我刚才补充说
this.tagInput.attr('autofocus', 'autofocus');
标记它的_create()方法,该方法将焦点放在元素上,而不必求助于Javascripty。这是有效的。您能简单地详细说明一下如何确保DOM在工作之前完成吗?Benjamin的答案可能正确,也可能不正确(我也没有尝试过),但他的答案似乎更像是自我记录。$(function()相当于$(document)。准备好了吗?这只是一个简写。我很喜欢你的“自动对焦”解决方案也是一样。我已经尝试使用这个建议来让它工作,而这似乎是我已经在做的事情。您可以在$(文档)中实例化tag it小部件.ready区域,所以我的解决方案似乎是唯一有效的。我承认,我将尝试沿着Ron的路线,因为修改元素的ID似乎被认为是不好的做法,直觉上这似乎是一个非常糟糕的主意。啊哈,我很确定这不会起作用,因为这正是我所做的。我应该给出代码上下文,但pla我在$(document.ready(f(){…})中修改ID和设置焦点的ce我尝试了其他建议的解决方案——尴尬地说,我没有真正提出我已经尝试过的原始问题。经过一些努力,我的解决方案是唯一可行的,所以我把我自己的答案称为答案。尽管我投票支持你的答案,但要知道“自动聚焦”在HTML5中是新的。尽管我非常讨厌我的答案最后,我认为我自己的答案是正确的,这是我唯一能做的事情,注意到罗恩的警告:这是HTML5。这里有一个悲伤的记忆。
this.tagInput.attr('autofocus', 'autofocus');