javascript – 使用焦点在contenteditable div中的元素?

我试图使用以下代码来引用我的contenteditable div中的任何内容,其id为rt:

var lastfocused;
$("#rt *").focus(function () {
  lastfocused = $(this);
});

出于某种原因,lastfocused总是等于$(“#rt”);,但从来没有任何其他可能在可信任的div内.我该如何做到这一点,任何聚焦在contenteditable div内的东西都将存储在lastfocused变量中?

最佳答案 看起来你的问题在其他地方.以上代码对我来说非常有用:

http://jsfiddle.net/8hZWq/

编辑

如果子元素不是你所说的输入,而是divs – focus()方法不适用于它们,因为它只适用于输入,textareas,select等.

您还可以使用.click()而不是focus()来存储对最后单击元素的引用.但请记住,它还取决于元素的结构.

例如,如果在子div中有多个级别的容器,#ID *选择器实际上会从#ID开始每个级别的子级触发多次.

如果您只想存储对#ID的第一级子级的引用,则应使用#ID> *选择器仅指直接儿童.

如果您希望仅将所引用的元素存储在引用中,而不管它与容器的级别如何,则应使用click事件目标引用:

var clicked;
$('#ID').click(function(event){
   clicked = $(event.target);
});
点赞