Focus ContentEditable div

时间:2015-05-10 14:19:38

标签: javascript jquery html reactjs

我想关注contenteditable div,以便在插入DOM时自动开始输入

我尝试了$('.content').focus(),但这不起作用

示例html:

<div class="content" contenteditable="true">sample input</div>

1 个答案:

答案 0 :(得分:0)

我认为您可能只需要将代码包装在window.load函数中:

&#13;
&#13;
$(window).on("load",function(){
  $('.content').focus();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="content" contenteditable="true">sample input</div>
&#13;
&#13;
&#13; (小提琴:http://jsfiddle.net/hxeqm541/

这样做,它会在页面完全加载之前等待,然后才能执行window.load内的代码。
如果你不这样做,那么关注div的代码将在div甚至存在于页面之前执行,这是不可能的。当div最终确实存在于页面上时,代码已经运行,因此不再发生任何事情。

附注:

  • 因为您通过其类(div)引用$('.content'),如果您有多个具有相同类名的div,则只有最后一个具有焦点。见example
  • 不需要将每个代码块包装在window.load中。
    通常,您可以将您的整个JavaScript代码包装在window.load中。该规则可能有一些例外情况,请阅读thisthis以充分了解window.load机制的运作方式,以便您确切知道如何使用它。
    (请注意第二个链接.load也可用于其他元素。)