我希望能够让contenteditable div获得焦点,这样当它被插入到DOM中时,我就可以自动开始输入了。
我已经尝试过$('.content').focus()
,但是它没有起作用。
示例html:
<div class="content" contenteditable="true">sample input</div>
我希望能够让contenteditable div获得焦点,这样当它被插入到DOM中时,我就可以自动开始输入了。
我已经尝试过$('.content').focus()
,但是它没有起作用。
示例html:
<div class="content" contenteditable="true">sample input</div>
我认为你可能只需要将代码放在window.load
函数中:
$(window).on("load",function(){
$('.content').focus();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="content" contenteditable="true">sample input</div>
window.load
中的代码之前等待页面完全加载。如果不这样做,那么定位到 div
的代码将在页面上甚至不存在该 div
时执行,这是不可能的。当 div
最终出现在页面上时,代码已经运行完毕,所以不会再发生任何事情了。$('.content')
)引用 div
,如果有多个具有相同类名的 div
,只有最后一个将获得焦点。请参见示例。
- 你不需要在每个单独的代码块中包装 window.load
。
通常,你可以将整个 JavaScript 代码都包装在 window.load
中。也许有一些例外,阅读此文章和此文章以充分理解 window.load
机制的工作原理,这样你就可以确切地知道如何使用它。(请注意,第二个链接中的 .load
也可以用于其他元素。)